mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-20 01:57:37 +00:00
[HLSL] RWBuffer<T> should not have a default parameter
RWBuffer doesn't have a default type in dxc's implementation, so it shouldn't have one in clang either. Reviewers: llvm-beanz, python3kgae Reviewed By: python3kgae, llvm-beanz Pull Request: https://github.com/llvm/llvm-project/pull/71265
This commit is contained in:
parent
77f5b33c46
commit
61329bdddd
@ -471,7 +471,7 @@ void HLSLExternalSemaSource::forwardDeclareHLSLTypes() {
|
||||
CXXRecordDecl *Decl;
|
||||
Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RWBuffer")
|
||||
.addTemplateArgumentList()
|
||||
.addTypeParameter("element_type", SemaPtr->getASTContext().FloatTy)
|
||||
.addTypeParameter("element_type")
|
||||
.finalizeTemplateArgs()
|
||||
.Record;
|
||||
if (!Decl->isCompleteDefinition())
|
||||
|
@ -13,8 +13,6 @@
|
||||
|
||||
// EMPTY: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> <invalid sloc> implicit RWBuffer
|
||||
// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> <invalid sloc> class depth 0 index 0 element_type
|
||||
// EMPTY-NEXT: TemplateArgument type 'float'
|
||||
// EMPTY-NEXT: BuiltinType 0x{{[0-9A-Fa-f]+}} 'float'
|
||||
// EMPTY-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> <invalid sloc> implicit <undeserialized declarations> class RWBuffer
|
||||
// EMPTY-NEXT: FinalAttr 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> Implicit final
|
||||
|
||||
@ -33,8 +31,6 @@ RWBuffer<float> Buffer;
|
||||
|
||||
// CHECK: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> <invalid sloc> implicit RWBuffer
|
||||
// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> <invalid sloc> class depth 0 index 0 element_type
|
||||
// CHECK-NEXT: TemplateArgument type 'float'
|
||||
// CHECK-NEXT: BuiltinType 0x{{[0-9A-Fa-f]+}} 'float'
|
||||
// CHECK-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> <invalid sloc> implicit class RWBuffer definition
|
||||
|
||||
// CHECK: FinalAttr 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> Implicit final
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
// Make sure PCH works by using function declared in PCH header and declare a RWBuffer in current file.
|
||||
// CHECK:FunctionDecl 0x[[FOO:[0-9a-f]+]] <{{.*}}:2:1, line:4:1> line:2:8 imported used foo 'float2 (float2, float2)'
|
||||
// CHECK:VarDecl 0x{{[0-9a-f]+}} <{{.*}}:10:1, col:23> col:23 Buffer 'hlsl::RWBuffer<float>':'hlsl::RWBuffer<>'
|
||||
// CHECK:VarDecl 0x{{[0-9a-f]+}} <{{.*}}:10:1, col:23> col:23 Buffer 'hlsl::RWBuffer<float>'
|
||||
hlsl::RWBuffer<float> Buffer;
|
||||
|
||||
float2 bar(float2 a, float2 b) {
|
||||
|
@ -5,9 +5,9 @@
|
||||
// Make sure PCH works by using function declared in PCH header.
|
||||
// CHECK:FunctionDecl 0x[[FOO:[0-9a-f]+]] <{{.*}}:2:1, line:4:1> line:2:8 imported used foo 'float2 (float2, float2)'
|
||||
// Make sure buffer defined in PCH works.
|
||||
// CHECK:VarDecl 0x{{[0-9a-f]+}} <line:6:1, col:17> col:17 imported Buf 'RWBuffer<float>':'hlsl::RWBuffer<>'
|
||||
// CHECK:VarDecl 0x{{[0-9a-f]+}} <line:6:1, col:17> col:17 imported Buf 'RWBuffer<float>'
|
||||
// Make sure declare a RWBuffer in current file works.
|
||||
// CHECK:VarDecl 0x{{[0-9a-f]+}} <{{.*}}:11:1, col:23> col:23 Buf2 'hlsl::RWBuffer<float>':'hlsl::RWBuffer<>'
|
||||
// CHECK:VarDecl 0x{{[0-9a-f]+}} <{{.*}}:11:1, col:23> col:23 Buf2 'hlsl::RWBuffer<float>'
|
||||
hlsl::RWBuffer<float> Buf2;
|
||||
|
||||
float2 bar(float2 a, float2 b) {
|
||||
|
@ -23,15 +23,15 @@ float foo() {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
// CHECK: VarDecl 0x{{[0-9a-f]+}} <{{.*}}> col:17 UAV 'RWBuffer<float>':'hlsl::RWBuffer<>' callinit
|
||||
// CHECK-NEXT:-CXXConstructExpr 0x{{[0-9a-f]+}} <col:17> 'RWBuffer<float>':'hlsl::RWBuffer<>' 'void ()'
|
||||
// CHECK: VarDecl 0x{{[0-9a-f]+}} <{{.*}}> col:17 UAV 'RWBuffer<float>':'hlsl::RWBuffer<float>' callinit
|
||||
// CHECK-NEXT:-CXXConstructExpr 0x{{[0-9a-f]+}} <col:17> 'RWBuffer<float>':'hlsl::RWBuffer<float>' 'void ()'
|
||||
// CHECK-NEXT:-HLSLResourceBindingAttr 0x{{[0-9a-f]+}} <col:23> "u3" "space0"
|
||||
RWBuffer<float> UAV : register(u3);
|
||||
|
||||
// CHECK: -VarDecl 0x{{[0-9a-f]+}} <{{.*}}> col:17 UAV1 'RWBuffer<float>':'hlsl::RWBuffer<>' callinit
|
||||
// CHECK-NEXT:-CXXConstructExpr 0x{{[0-9a-f]+}} <col:17> 'RWBuffer<float>':'hlsl::RWBuffer<>' 'void ()'
|
||||
// CHECK: -VarDecl 0x{{[0-9a-f]+}} <{{.*}}> col:17 UAV1 'RWBuffer<float>':'hlsl::RWBuffer<float>' callinit
|
||||
// CHECK-NEXT:-CXXConstructExpr 0x{{[0-9a-f]+}} <col:17> 'RWBuffer<float>':'hlsl::RWBuffer<float>' 'void ()'
|
||||
// CHECK-NEXT:-HLSLResourceBindingAttr 0x{{[0-9a-f]+}} <col:24> "u2" "space0"
|
||||
// CHECK-NEXT:-VarDecl 0x{{[0-9a-f]+}} <col:1, col:38> col:38 UAV2 'RWBuffer<float>':'hlsl::RWBuffer<>' callinit
|
||||
// CHECK-NEXT:-CXXConstructExpr 0x{{[0-9a-f]+}} <col:38> 'RWBuffer<float>':'hlsl::RWBuffer<>' 'void ()'
|
||||
// CHECK-NEXT:-VarDecl 0x{{[0-9a-f]+}} <col:1, col:38> col:38 UAV2 'RWBuffer<float>':'hlsl::RWBuffer<float>' callinit
|
||||
// CHECK-NEXT:-CXXConstructExpr 0x{{[0-9a-f]+}} <col:38> 'RWBuffer<float>':'hlsl::RWBuffer<float>' 'void ()'
|
||||
// CHECK-NEXT:-HLSLResourceBindingAttr 0x{{[0-9a-f]+}} <col:45> "u4" "space0"
|
||||
RWBuffer<float> UAV1 : register(u2), UAV2 : register(u4);
|
||||
|
@ -5,6 +5,14 @@ typedef vector<float, 3> float3;
|
||||
|
||||
RWBuffer<float3> Buffer;
|
||||
|
||||
// expected-error@+2 {{class template 'RWBuffer' requires template arguments}}
|
||||
// expected-note@*:* {{template declaration from hidden source: template <class element_type> class RWBuffer final}}
|
||||
RWBuffer BufferErr1;
|
||||
|
||||
// expected-error@+2 {{too few template arguments for class template 'RWBuffer'}}
|
||||
// expected-note@*:* {{template declaration from hidden source: template <class element_type> class RWBuffer final}}
|
||||
RWBuffer<> BufferErr2;
|
||||
|
||||
[numthreads(1,1,1)]
|
||||
void main() {
|
||||
(void)Buffer.h; // expected-error {{'h' is a private member of 'hlsl::RWBuffer<float __attribute__((ext_vector_type(3)))>'}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user