diff options
Diffstat (limited to 'test/Sema/ext_vector_casts.c')
-rw-r--r-- | test/Sema/ext_vector_casts.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Sema/ext_vector_casts.c b/test/Sema/ext_vector_casts.c new file mode 100644 index 0000000000000..8aa762ebcf2ae --- /dev/null +++ b/test/Sema/ext_vector_casts.c @@ -0,0 +1,23 @@ +// RUN: clang-cc -fsyntax-only -verify %s + +typedef __attribute__(( ext_vector_type(2) )) float float2; +typedef __attribute__(( ext_vector_type(4) )) int int4; +typedef __attribute__(( ext_vector_type(4) )) float float4; +typedef float t3 __attribute__ ((vector_size (16))); + +static void test() { + float2 vec2; + float4 vec4, vec4_2; + int4 ivec4; + t3 vec4_3; + + vec4 = (float4)5.0f; + vec4 = (float4)5; + vec4 = (float4)vec4_3; + + ivec4 = (int4)5.0f; + ivec4 = (int4)5; + ivec4 = (int4)vec4_3; + + vec4 = (float4)vec2; // expected-error {{invalid conversion between ext-vector type 'float4' and 'float2'}} +} |