aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/HLSLExternalSemaSource.cpp
diff options
context:
space:
mode:
authorHelena Kotas <hekotas@microsoft.com>2024-10-24 10:34:04 -0700
committerGitHub <noreply@github.com>2024-10-24 10:34:04 -0700
commitaf872d5473e7e1132e0ec8e146d28af239196c53 (patch)
tree0f24f78102a63834805129f4d80e64dbb4cb9100 /clang/lib/Sema/HLSLExternalSemaSource.cpp
parent4bce21480fc52bf583b6bfe5072f9eb70c21f6e4 (diff)
downloadllvm-af872d5473e7e1132e0ec8e146d28af239196c53.zip
llvm-af872d5473e7e1132e0ec8e146d28af239196c53.tar.gz
llvm-af872d5473e7e1132e0ec8e146d28af239196c53.tar.bz2
[HLSL] Add RWStructuredBuffer definition to HLSLExternalSemaSource (#113477)
Add tests for RWStructuredBuffer class definition. Use shared test files for all structured buffers' constructor and subscript tests. Keep AST and element-type tests separate for each buffer type because they longer and failures would be harder to match. Fixes #112775
Diffstat (limited to 'clang/lib/Sema/HLSLExternalSemaSource.cpp')
-rw-r--r--clang/lib/Sema/HLSLExternalSemaSource.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/Sema/HLSLExternalSemaSource.cpp b/clang/lib/Sema/HLSLExternalSemaSource.cpp
index 50bb307..ce85644 100644
--- a/clang/lib/Sema/HLSLExternalSemaSource.cpp
+++ b/clang/lib/Sema/HLSLExternalSemaSource.cpp
@@ -519,6 +519,17 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() {
.addArraySubscriptOperators()
.completeDefinition();
});
+
+ Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RWStructuredBuffer")
+ .addSimpleTemplateParams(*SemaPtr, {"element_type"})
+ .Record;
+ onCompletion(Decl, [this](CXXRecordDecl *Decl) {
+ setupBufferType(Decl, *SemaPtr, ResourceClass::UAV,
+ ResourceKind::TypedBuffer, /*IsROV=*/false,
+ /*RawBuffer=*/true)
+ .addArraySubscriptOperators()
+ .completeDefinition();
+ });
}
void HLSLExternalSemaSource::onCompletion(CXXRecordDecl *Record,