================
@@ -20,6 +20,39 @@ union U {
ConstantBuffer<S> cb;
ConstantBuffer<Empty> cb_empty;
+// Invalid: non-struct/class
+// expected-error@+1 {{constraints not satisfied for class template
'ConstantBuffer'}}
+ConstantBuffer<float> cb_float;
+// expected-note@* {{because 'float' does not satisfy
'__is_constant_buffer_element_compatible'}}
+// expected-note@* {{because
'__builtin_hlsl_is_constant_buffer_element_compatible(float)' evaluated to
false}}
+
+// expected-error@+1 {{constraints not satisfied for class template
'ConstantBuffer'}}
+ConstantBuffer<float4> cb_float4;
+// expected-note@* {{because 'float4' (aka 'vector<float, 4>') does not
satisfy '__is_constant_buffer_element_compatible'}}
+// expected-note@* {{because
'__builtin_hlsl_is_constant_buffer_element_compatible(vector<float, 4>)'
evaluated to false}}
+
+// expected-error@+1 {{constraints not satisfied for class template
'ConstantBuffer'}}
+ConstantBuffer<float[4]> cb_array;
+// expected-note@* {{because 'float[4]' does not satisfy
'__is_constant_buffer_element_compatible'}}
+// expected-note@* {{because
'__builtin_hlsl_is_constant_buffer_element_compatible(float[4])' evaluated to
false}}
+
+// Invalid: contains resource
+// expected-error@+1 {{constraints not satisfied for class template
'ConstantBuffer'}}
+ConstantBuffer<ContainsResource> cb_res;
+// expected-note@* {{because 'ContainsResource' does not satisfy
'__is_constant_buffer_element_compatible'}}
+// expected-note@* {{because
'__builtin_hlsl_is_constant_buffer_element_compatible(ContainsResource)'
evaluated to false}}
+
+// Invalid: intangible type
+// expected-error@+1 {{use of class template 'Texture2D' requires template
arguments}}
+ConstantBuffer<Texture2D> cb_tex;
----------------
s-perron wrote:
I added that as a separate test. The error messages are not great, but, I want
to make sure ConstantBuffer<Texture2D> fails as well.
https://github.com/llvm/llvm-project/pull/195154
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits