diff options
author | Ashley Coleman <ascoleman@microsoft.com> | 2025-05-28 12:58:47 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-28 13:58:47 -0600 |
commit | cb7f4ff03cc20b04360d75f78e2255214a617d5f (patch) | |
tree | 25bd3a0a43efe80e37fb262a35f0b375f456e951 /clang/lib/Sema/HLSLExternalSemaSource.cpp | |
parent | 440a8adb86564846e10830f56a9073e43d834c9b (diff) | |
download | llvm-cb7f4ff03cc20b04360d75f78e2255214a617d5f.zip llvm-cb7f4ff03cc20b04360d75f78e2255214a617d5f.tar.gz llvm-cb7f4ff03cc20b04360d75f78e2255214a617d5f.tar.bz2 |
[HLSL] Add Buffer def to frontend (#141086)
Fixes #138902
Defines the `Buffer<>` type in the clang frontend. Lowering from
IR->Target Machine is already handled by other code
Diffstat (limited to 'clang/lib/Sema/HLSLExternalSemaSource.cpp')
-rw-r--r-- | clang/lib/Sema/HLSLExternalSemaSource.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/Sema/HLSLExternalSemaSource.cpp b/clang/lib/Sema/HLSLExternalSemaSource.cpp index 38bde7c..726581d 100644 --- a/clang/lib/Sema/HLSLExternalSemaSource.cpp +++ b/clang/lib/Sema/HLSLExternalSemaSource.cpp @@ -266,6 +266,19 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() { *SemaPtr, HLSLNamespace, /*isTypedBuffer*/ true); ConceptDecl *StructuredBufferConcept = constructBufferConceptDecl( *SemaPtr, HLSLNamespace, /*isTypedBuffer*/ false); + + Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "Buffer") + .addSimpleTemplateParams({"element_type"}, TypedBufferConcept) + .finalizeForwardDeclaration(); + + onCompletion(Decl, [this](CXXRecordDecl *Decl) { + setupBufferType(Decl, *SemaPtr, ResourceClass::SRV, /*IsROV=*/false, + /*RawBuffer=*/false) + .addArraySubscriptOperators() + .addLoadMethods() + .completeDefinition(); + }); + Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RWBuffer") .addSimpleTemplateParams({"element_type"}, TypedBufferConcept) .finalizeForwardDeclaration(); |