Skip to content

Commit b3c5031

Browse files
authored
[HLSL] Remove HLSLResource attribute (#130342)
Fixes #104862
1 parent 9a92fe0 commit b3c5031

14 files changed

+32
-92
lines changed

clang/include/clang/Basic/Attr.td

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4812,33 +4812,6 @@ def HLSLShader : InheritableAttr {
48124812
}];
48134813
}
48144814

4815-
def HLSLResource : InheritableAttr {
4816-
let Spellings = [];
4817-
let Subjects = SubjectList<[Struct]>;
4818-
let LangOpts = [HLSL];
4819-
let Args = [
4820-
EnumArgument<
4821-
"ResourceKind", "llvm::hlsl::ResourceKind",
4822-
/*is_string=*/0,
4823-
[
4824-
"Texture1D", "Texture2D", "Texture2DMS", "Texture3D", "TextureCube",
4825-
"Texture1DArray", "Texture2DArray", "Texture2DMSArray",
4826-
"TextureCubeArray", "TypedBuffer", "RawBuffer", "StructuredBuffer",
4827-
"CBuffer", "Sampler", "TBuffer", "RTAccelerationStructure",
4828-
"FeedbackTexture2D", "FeedbackTexture2DArray"
4829-
],
4830-
[
4831-
"Texture1D", "Texture2D", "Texture2DMS", "Texture3D", "TextureCube",
4832-
"Texture1DArray", "Texture2DArray", "Texture2DMSArray",
4833-
"TextureCubeArray", "TypedBuffer", "RawBuffer", "StructuredBuffer",
4834-
"CBuffer", "Sampler", "TBuffer", "RTAccelerationStructure",
4835-
"FeedbackTexture2D", "FeedbackTexture2DArray"
4836-
],
4837-
/*opt=*/0, /*fake=*/0, /*isExternalType=*/1, /*isCovered=*/0>
4838-
];
4839-
let Documentation = [InternalOnly];
4840-
}
4841-
48424815
def HLSLROV : TypeAttr {
48434816
let Spellings = [CXX11<"hlsl", "is_rov">];
48444817
let LangOpts = [HLSL];

clang/lib/Sema/HLSLExternalSemaSource.cpp

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ class BuiltinTypeDeclBuilder {
133133
}
134134

135135
BuiltinTypeDeclBuilder &
136-
addHandleMember(ResourceClass RC, ResourceKind RK, bool IsROV, bool RawBuffer,
136+
addHandleMember(ResourceClass RC, bool IsROV, bool RawBuffer,
137137
AccessSpecifier Access = AccessSpecifier::AS_private) {
138138
assert(!Record->isCompleteDefinition() && "record is already complete");
139139

@@ -150,10 +150,9 @@ class BuiltinTypeDeclBuilder {
150150
ElementTypeInfo
151151
? HLSLContainedTypeAttr::CreateImplicit(Ctx, ElementTypeInfo)
152152
: nullptr};
153-
Attr *ResourceAttr = HLSLResourceAttr::CreateImplicit(Ctx, RK);
154153
if (CreateHLSLAttributedResourceType(SemaRef, Ctx.HLSLResourceTy, Attrs,
155154
AttributedResTy))
156-
addMemberVariable("__handle", AttributedResTy, {ResourceAttr}, Access);
155+
addMemberVariable("__handle", AttributedResTy, {}, Access);
157156
return *this;
158157
}
159158

@@ -857,10 +856,10 @@ void HLSLExternalSemaSource::defineTrivialHLSLTypes() {
857856

858857
/// Set up common members and attributes for buffer types
859858
static BuiltinTypeDeclBuilder setupBufferType(CXXRecordDecl *Decl, Sema &S,
860-
ResourceClass RC, ResourceKind RK,
861-
bool IsROV, bool RawBuffer) {
859+
ResourceClass RC, bool IsROV,
860+
bool RawBuffer) {
862861
return BuiltinTypeDeclBuilder(S, Decl)
863-
.addHandleMember(RC, RK, IsROV, RawBuffer)
862+
.addHandleMember(RC, IsROV, RawBuffer)
864863
.addDefaultHandleConstructor();
865864
}
866865

@@ -999,8 +998,7 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
999998
.finalizeForwardDeclaration();
1000999

10011000
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1002-
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV,
1003-
ResourceKind::TypedBuffer, /*IsROV=*/false,
1001+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, /*IsROV=*/false,
10041002
/*RawBuffer=*/false)
10051003
.addArraySubscriptOperators()
10061004
.addLoadMethods()
@@ -1012,8 +1010,7 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
10121010
.addSimpleTemplateParams({"element_type"}, StructuredBufferConcept)
10131011
.finalizeForwardDeclaration();
10141012
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1015-
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV,
1016-
ResourceKind::TypedBuffer, /*IsROV=*/true,
1013+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, /*IsROV=*/true,
10171014
/*RawBuffer=*/false)
10181015
.addArraySubscriptOperators()
10191016
.addLoadMethods()
@@ -1024,8 +1021,8 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
10241021
.addSimpleTemplateParams({"element_type"}, StructuredBufferConcept)
10251022
.finalizeForwardDeclaration();
10261023
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1027-
setupBufferType(Decl, *SemaPtr, ResourceClass::SRV, ResourceKind::RawBuffer,
1028-
/*IsROV=*/false, /*RawBuffer=*/true)
1024+
setupBufferType(Decl, *SemaPtr, ResourceClass::SRV, /*IsROV=*/false,
1025+
/*RawBuffer=*/true)
10291026
.addArraySubscriptOperators()
10301027
.addLoadMethods()
10311028
.completeDefinition();
@@ -1035,8 +1032,8 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
10351032
.addSimpleTemplateParams({"element_type"}, StructuredBufferConcept)
10361033
.finalizeForwardDeclaration();
10371034
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1038-
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer,
1039-
/*IsROV=*/false, /*RawBuffer=*/true)
1035+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, /*IsROV=*/false,
1036+
/*RawBuffer=*/true)
10401037
.addArraySubscriptOperators()
10411038
.addLoadMethods()
10421039
.addIncrementCounterMethod()
@@ -1049,8 +1046,8 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
10491046
.addSimpleTemplateParams({"element_type"}, StructuredBufferConcept)
10501047
.finalizeForwardDeclaration();
10511048
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1052-
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer,
1053-
/*IsROV=*/false, /*RawBuffer=*/true)
1049+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, /*IsROV=*/false,
1050+
/*RawBuffer=*/true)
10541051
.addAppendMethod()
10551052
.completeDefinition();
10561053
});
@@ -1060,8 +1057,8 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
10601057
.addSimpleTemplateParams({"element_type"}, StructuredBufferConcept)
10611058
.finalizeForwardDeclaration();
10621059
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1063-
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer,
1064-
/*IsROV=*/false, /*RawBuffer=*/true)
1060+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, /*IsROV=*/false,
1061+
/*RawBuffer=*/true)
10651062
.addConsumeMethod()
10661063
.completeDefinition();
10671064
});
@@ -1071,8 +1068,8 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
10711068
.addSimpleTemplateParams({"element_type"}, StructuredBufferConcept)
10721069
.finalizeForwardDeclaration();
10731070
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1074-
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer,
1075-
/*IsROV=*/true, /*RawBuffer=*/true)
1071+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, /*IsROV=*/true,
1072+
/*RawBuffer=*/true)
10761073
.addArraySubscriptOperators()
10771074
.addLoadMethods()
10781075
.addIncrementCounterMethod()
@@ -1083,25 +1080,22 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
10831080
Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "ByteAddressBuffer")
10841081
.finalizeForwardDeclaration();
10851082
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1086-
setupBufferType(Decl, *SemaPtr, ResourceClass::SRV, ResourceKind::RawBuffer,
1087-
/*IsROV=*/false,
1083+
setupBufferType(Decl, *SemaPtr, ResourceClass::SRV, /*IsROV=*/false,
10881084
/*RawBuffer=*/true)
10891085
.completeDefinition();
10901086
});
10911087
Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RWByteAddressBuffer")
10921088
.finalizeForwardDeclaration();
10931089
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1094-
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer,
1095-
/*IsROV=*/false,
1090+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, /*IsROV=*/false,
10961091
/*RawBuffer=*/true)
10971092
.completeDefinition();
10981093
});
10991094
Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace,
11001095
"RasterizerOrderedByteAddressBuffer")
11011096
.finalizeForwardDeclaration();
11021097
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
1103-
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer,
1104-
/*IsROV=*/true,
1098+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, /*IsROV=*/true,
11051099
/*RawBuffer=*/true)
11061100
.completeDefinition();
11071101
});

clang/lib/Sema/SemaHLSL.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,7 @@ Decl *SemaHLSL::ActOnStartBuffer(Scope *BufferScope, bool CBuffer,
162162
// if CBuffer is false, then it's a TBuffer
163163
auto RC = CBuffer ? llvm::hlsl::ResourceClass::CBuffer
164164
: llvm::hlsl::ResourceClass::SRV;
165-
auto RK = CBuffer ? llvm::hlsl::ResourceKind::CBuffer
166-
: llvm::hlsl::ResourceKind::TBuffer;
167165
Result->addAttr(HLSLResourceClassAttr::CreateImplicit(getASTContext(), RC));
168-
Result->addAttr(HLSLResourceAttr::CreateImplicit(getASTContext(), RK));
169166

170167
SemaRef.PushOnScopeChains(Result, BufferScope);
171168
SemaRef.PushDeclContext(BufferScope, Result);

clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ RESOURCE Buffer;
4141
// CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]]
4242
// CHECK-SAME{LITERAL}: [[hlsl::raw_buffer]]
4343
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(char8_t)]]
44-
// CHECK-NEXT: HLSLResourceAttr {{.*}} Implicit RawBuffer
4544

4645
// CHECK-NOSUBSCRIPT-NOT: CXXMethodDecl {{.*}} operator[] 'const element_type &(unsigned int) const'
4746
// CHECK-NOSUBSCRIPT-NOT: CXXMethodDecl {{.*}} operator[] 'element_type &(unsigned int)'

clang/test/AST/HLSL/StructuredBuffers-AST.hlsl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ RESOURCE<float> Buffer;
8888
// CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]]
8989
// CHECK-SAME{LITERAL}: [[hlsl::raw_buffer]]
9090
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]
91-
// CHECK-NEXT: HLSLResourceAttr {{.*}} Implicit RawBuffer
9291

9392
// CHECK-SUBSCRIPT: CXXMethodDecl {{.*}} operator[] 'const element_type &(unsigned int) const'
9493
// CHECK-SUBSCRIPT-NEXT: ParmVarDecl {{.*}} Index 'unsigned int'
@@ -219,4 +218,3 @@ RESOURCE<float> Buffer;
219218
// CHECK-ROV-SAME{LITERAL}: [[hlsl::is_rov]]
220219
// CHECK-SAME{LITERAL}: [[hlsl::raw_buffer]]
221220
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(float)]]
222-
// CHECK-NEXT: HLSLResourceAttr {{.*}} Implicit RawBuffer

clang/test/AST/HLSL/TypedBuffers-AST.hlsl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ RESOURCE<float> Buffer;
5555
// CHECK-NEXT: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t
5656
// CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]]
5757
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]
58-
// CHECK-NEXT: HLSLResourceAttr {{.*}} Implicit TypedBuffer
5958

6059
// CHECK: CXXMethodDecl {{.*}} operator[] 'const element_type &(unsigned int) const'
6160
// CHECK-NEXT: ParmVarDecl {{.*}} Index 'unsigned int'
@@ -110,4 +109,3 @@ RESOURCE<float> Buffer;
110109
// CHECK-NEXT: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t
111110
// CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]]
112111
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(float)]]
113-
// CHECK-NEXT: HLSLResourceAttr {{.*}} Implicit TypedBuffer

clang/test/AST/HLSL/ast-dump-comment-cbuffer.hlsl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ cbuffer A {
2121

2222
// AST: HLSLBufferDecl {{.*}} line:11:9 cbuffer A
2323
// AST-NEXT: HLSLResourceClassAttr {{.*}} Implicit CBuffer
24-
// AST-NEXT: HLSLResourceAttr {{.*}} Implicit CBuffer
2524
// AST-NEXT: FullComment
2625
// AST-NEXT: ParagraphComment
2726
// AST-NEXT: TextComment {{.*}} Text=" CBuffer decl."

clang/test/AST/HLSL/cbuffer.hlsl

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,8 @@ struct TwoFloats {
4444
float b;
4545
};
4646

47-
// CHECK: HLSLBufferDecl {{.*}} line:50:9 cbuffer CB
47+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:9 cbuffer CB
4848
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
49-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
5049
cbuffer CB {
5150
// CHECK: VarDecl {{.*}} used a1 'hlsl_constant float'
5251
float a1;
@@ -57,9 +56,8 @@ cbuffer CB {
5756
_Static_assert(__builtin_hlsl_is_scalarized_layout_compatible(OneFloat, __cblayout_CB), "");
5857

5958
// Check that buffer layout struct does not include resources or empty types
60-
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 3]]:9 cbuffer CB
59+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:9 cbuffer CB
6160
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
62-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
6361
cbuffer CB {
6462
// CHECK: VarDecl {{.*}} used a2 'hlsl_constant float'
6563
float a2;
@@ -85,9 +83,8 @@ cbuffer CB {
8583
_Static_assert(__builtin_hlsl_is_scalarized_layout_compatible(TwoFloats, __cblayout_CB_1), "");
8684

8785
// Check that layout struct is created for B and the empty struct C is removed
88-
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 3]]:9 cbuffer CB
86+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:9 cbuffer CB
8987
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
90-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
9188
cbuffer CB {
9289
// CHECK: VarDecl {{.*}} used s1 'hlsl_constant A'
9390
A s1;
@@ -108,9 +105,8 @@ _Static_assert(__builtin_hlsl_is_scalarized_layout_compatible(OneFloat, __cblayo
108105
_Static_assert(__builtin_hlsl_is_scalarized_layout_compatible(TwoFloats, __cblayout_CB_2), "");
109106

110107
// check that layout struct is created for D because of its base struct
111-
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 3]]:9 cbuffer CB
108+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:9 cbuffer CB
112109
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
113-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
114110
cbuffer CB {
115111
// CHECK: VarDecl {{.*}} s4 'hlsl_constant D'
116112
D s4;
@@ -128,9 +124,8 @@ _Static_assert(__builtin_hlsl_is_scalarized_layout_compatible(TwoFloats, __cblay
128124
// check that layout struct is created for E because because its base struct
129125
// is empty and should be eliminated, and BTypedef should reuse the previously
130126
// defined '__cblayout_B'
131-
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 3]]:9 cbuffer CB
127+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:9 cbuffer CB
132128
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
133-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
134129
cbuffer CB {
135130
// CHECK: VarDecl {{.*}} s5 'hlsl_constant E'
136131
E s5;
@@ -149,9 +144,8 @@ _Static_assert(__builtin_hlsl_is_scalarized_layout_compatible(OneFloat, __cblayo
149144
_Static_assert(__builtin_hlsl_is_scalarized_layout_compatible(TwoFloats, __cblayout_CB_4), "");
150145

151146
// check that this produces empty layout struct
152-
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 3]]:9 cbuffer CB
147+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:9 cbuffer CB
153148
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
154-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
155149
cbuffer CB {
156150
// CHECK: FunctionDecl {{.*}} f 'void ()'
157151
void f() {}
@@ -169,9 +163,8 @@ cbuffer CB {
169163
}
170164

171165
// check host layout struct with compatible base struct
172-
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 3]]:9 cbuffer CB
166+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:9 cbuffer CB
173167
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
174-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
175168
cbuffer CB {
176169
// CHECK: VarDecl {{.*}} s8 'hlsl_constant F'
177170
F s8;
@@ -186,9 +179,8 @@ _Static_assert(__builtin_hlsl_is_scalarized_layout_compatible(OneFloat, __cblayo
186179
_Static_assert(__builtin_hlsl_is_scalarized_layout_compatible(OneFloat, __cblayout_CB_6), "");
187180

188181
// anonymous structs
189-
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 3]]:9 cbuffer CB
182+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:9 cbuffer CB
190183
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
191-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
192184
cbuffer CB {
193185
// CHECK: CXXRecordDecl {{.*}} struct definition
194186
struct {

clang/test/AST/HLSL/cbuffer_and_namespaces.hlsl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,8 @@ struct Foo {
3131
EmptyStruct es;
3232
};
3333

34-
// CHECK: HLSLBufferDecl {{.*}} line:37:9 cbuffer CB1
34+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:9 cbuffer CB1
3535
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
36-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
3736
cbuffer CB1 {
3837
// CHECK: VarDecl {{.*}} foo1 'hlsl_constant Foo'
3938
Foo foo1;
@@ -61,9 +60,8 @@ namespace NS2 {
6160
float d[4];
6261
EmptyStruct es;
6362
};
64-
// CHECK: HLSLBufferDecl {{.*}} line:67:11 cbuffer CB2
63+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 2]]:11 cbuffer CB2
6564
// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer
66-
// CHECK: HLSLResourceAttr {{.*}} Implicit CBuffer
6765
cbuffer CB2 {
6866
// CHECK: VarDecl {{.*}} foo0 'hlsl_constant ::Foo':'hlsl_constant Foo'
6967
::Foo foo0;

clang/test/AST/HLSL/packoffset.hlsl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
cbuffer A
66
{
77
// CHECK-NEXT:-HLSLResourceClassAttr {{.*}} Implicit CBuffer
8-
// CHECK-NEXT:-HLSLResourceAttr {{.*}} Implicit CBuffer
98
// CHECK-NEXT: VarDecl {{.*}} A1 'hlsl_constant float4'
109
// CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 0
1110
float4 A1 : packoffset(c);

clang/test/AST/HLSL/pch_hlsl_buffer.hlsl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,12 @@ float foo() {
1919
// Make sure cbuffer/tbuffer works for PCH.
2020
// CHECK: HLSLBufferDecl {{.*}} line:7:9 imported <undeserialized declarations> cbuffer A
2121
// CHECK-NEXT: HLSLResourceClassAttr {{.*}} Implicit CBuffer
22-
// CHECK-NEXT: HLSLResourceAttr {{.*}} Implicit CBuffer
2322
// CHECK-NEXT: VarDecl 0x[[A:[0-9a-f]+]] {{.*}} imported used a 'hlsl_constant float'
2423
// CHECK-NEXT: CXXRecordDecl {{.*}} imported implicit <undeserialized declarations> struct __cblayout_A definition
2524
// CHECK: FieldDecl {{.*}} imported a 'float'
2625

2726
// CHECK: HLSLBufferDecl {{.*}} line:11:9 imported <undeserialized declarations> tbuffer B
2827
// CHECK-NEXT: HLSLResourceClassAttr {{.*}} Implicit SRV
29-
// CHECK-NEXT: HLSLResourceAttr {{.*}} Implicit TBuffer
3028
// CHECK-NEXT: VarDecl 0x[[B:[0-9a-f]+]] {{.*}} imported used b 'hlsl_constant float'
3129
// CHECK-NEXT: CXXRecordDecl 0x{{[0-9a-f]+}} {{.*}} imported implicit <undeserialized declarations> struct __cblayout_B definition
3230
// CHECK: FieldDecl 0x{{[0-9a-f]+}} {{.*}} imported b 'float'

clang/test/AST/HLSL/resource_binding_attr.hlsl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -finclude-default-header -ast-dump -o - %s | FileCheck %s
22

3-
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 5]]:9 cbuffer CB
3+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 4]]:9 cbuffer CB
44
// CHECK-NEXT: HLSLResourceClassAttr {{.*}} Implicit CBuffer
5-
// CHECK-NEXT: HLSLResourceAttr {{.*}} Implicit CBuffer
65
// CHECK-NEXT: HLSLResourceBindingAttr {{.*}} "b3" "space2"
76
// CHECK-NEXT: VarDecl {{.*}} used a 'hlsl_constant float'
87
cbuffer CB : register(b3, space2) {
98
float a;
109
}
1110

12-
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 5]]:9 tbuffer TB
11+
// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 4]]:9 tbuffer TB
1312
// CHECK-NEXT: HLSLResourceClassAttr {{.*}} Implicit SRV
14-
// CHECK-NEXT: HLSLResourceAttr {{.*}} Implicit TBuffer
1513
// CHECK-NEXT: HLSLResourceBindingAttr {{.*}} "t2" "space1"
1614
// CHECK-NEXT: VarDecl {{.*}} used b 'hlsl_constant float'
1715
tbuffer TB : register(t2, space1) {

clang/test/ParserHLSL/hlsl_resource_handle_attrs.hlsl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
// CHECK: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t
77
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(UAV)]]
88
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(float)]]
9-
// CHECK: HLSLResourceAttr {{.*}} Implicit TypedBuffer
109
RWBuffer<float> Buffer1;
1110

1211
// CHECK: ClassTemplateSpecializationDecl {{.*}} class RasterizerOrderedBuffer definition implicit_instantiation
@@ -17,5 +16,4 @@ RWBuffer<float> Buffer1;
1716
// CHECK-SAME{LITERAL}: [[hlsl::resource_class(UAV)]
1817
// CHECK-SAME{LITERAL}: [[hlsl::is_rov]]
1918
// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<float, 4>)]]
20-
// CHECK: HLSLResourceAttr {{.*}} Implicit TypedBuffer
2119
RasterizerOrderedBuffer<vector<float, 4> > BufferArray3[4];

0 commit comments

Comments
 (0)