Skip to content

Commit 40b288d

Browse files
adding other buffers definition
1 parent 2c15c3a commit 40b288d

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

clang/lib/Sema/HLSLExternalSemaSource.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -962,6 +962,22 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
962962
/*RawBuffer=*/true)
963963
.completeDefinition();
964964
});
965+
Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RWByteAddressBuffer")
966+
.finalizeForwardDeclaration();
967+
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
968+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer,
969+
/*IsROV=*/false,
970+
/*RawBuffer=*/true)
971+
.completeDefinition();
972+
});
973+
Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RasterizerOrderedByteAddressBuffer")
974+
.finalizeForwardDeclaration();
975+
onCompletion(Decl, [this](CXXRecordDecl *Decl) {
976+
setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer,
977+
/*IsROV=*/true,
978+
/*RawBuffer=*/true)
979+
.completeDefinition();
980+
});
965981
}
966982

967983
void HLSLExternalSemaSource::onCompletion(CXXRecordDecl *Record,

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,22 @@
55
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \
66
// RUN: -DRESOURCE=ByteAddressBuffer %s | FileCheck -DRESOURCE=ByteAddressBuffer \
77
// RUN: -check-prefixes=CHECK,CHECK-SRV,CHECK-NOSUBSCRIPT %s
8+
//
9+
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump -DEMPTY \
10+
// RUN: -DRESOURCE=RWByteAddressBuffer %s | FileCheck -DRESOURCE=RWByteAddressBuffer \
11+
// RUN: -check-prefix=EMPTY %s
12+
//
13+
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \
14+
// RUN: -DRESOURCE=RWByteAddressBuffer %s | FileCheck -DRESOURCE=RWByteAddressBuffer \
15+
// RUN: -check-prefixes=CHECK,CHECK-UAV,CHECK-NOSUBSCRIPT %s
16+
//
17+
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump -DEMPTY \
18+
// RUN: -DRESOURCE=RasterizerOrderedByteAddressBuffer %s | FileCheck -DRESOURCE=RasterizerOrderedByteAddressBuffer \
19+
// RUN: -check-prefix=EMPTY %s
20+
//
21+
// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \
22+
// RUN: -DRESOURCE=RasterizerOrderedByteAddressBuffer %s | FileCheck -DRESOURCE=RasterizerOrderedByteAddressBuffer \
23+
// RUN: -check-prefixes=CHECK,CHECK-UAV,CHECK-NOSUBSCRIPT %s
824

925
// EMPTY: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> <invalid sloc> implicit <undeserialized declarations> class [[RESOURCE]]
1026
// EMPTY-NEXT: FinalAttr 0x{{[0-9A-Fa-f]+}} <<invalid sloc>> Implicit final

0 commit comments

Comments
 (0)