[clang] [HLSL] Add testing for space parameter on global constants (PR #106782)

Joshua Batista via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 13 09:35:38 PDT 2024


================
@@ -0,0 +1,56 @@
+// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -o - -fsyntax-only %s -verify
+
+// valid
+cbuffer cbuf {
+    RWBuffer<int> r : register(u0, space0);
+}
+
+cbuffer cbuf2 {
+    struct x {
+        // expected-error at +1 {{'register' attribute only applies to cbuffer/tbuffer and external global variables}}
+        RWBuffer<int> E : register(u2, space3);
+    };
+}
+
+struct MyStruct {
+    RWBuffer<int> E;
+};
+
+cbuffer cbuf3 {
+  MyStruct E : register(u2, space3);
----------------
bob80905 wrote:

> https://godbolt.org/z/G7cKdP3hY cbuffer cbuf3 { float a : register(u2, space3); }

I agree that the code you provided should emit an error, I'll add your example to the test.

https://github.com/llvm/llvm-project/pull/106782


More information about the cfe-commits mailing list