================
@@ -0,0 +1,76 @@
+// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -o - 
-fsyntax-only %s -verify
+
+// This test validates the diagnostics that are emitted when a variable with a 
"resource" type
+// is bound to a register using the register annotation
+
+// expected-error@+1  {{binding type 'b' only applies to constant buffer 
resources}}
+RWBuffer<int> a : register(b2, space1);
----------------
bob80905 wrote:

I don't think we should remove all instances of RWBuffer in testing. Although 
we plan to eventually move all hlsl resources into an appropriate header, with 
the corresponding spellable hlsl attributes, as it stands now RWBuffer is 
defined in HLSLExternalSemaSource.cpp within a template specialization decl. 
There is code in this change that specifically accounts for this, and by 
removing RWBuffer entirely from the tests, it would become dead code. 
Specifically, `getSpecifiedHLSLAttrFromRecordDecl` has an if condition to check 
if the record decl is a `ClassTemplateSpecializationDecl`, which is only the 
case for types declared in HLSLExternalSemaSource.cpp. 
This change should test both user defined types that have the spellable 
attribute of interest, but ideally the end goal is that it works with actual 
practical HLSL resources, like RWBuffer. 

https://github.com/llvm/llvm-project/pull/97103
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to