1 // RUN: clang-cc -fsyntax-only %s -verify -Wvector-conversions
3 typedef long long t1
__attribute__ ((vector_size (8)));
4 typedef char t2
__attribute__ ((vector_size (16)));
5 typedef float t3
__attribute__ ((vector_size (16)));
13 v2
= (t2
)v1
; // -expected-error {{invalid conversion between vector type \
14 't2' and 't1' of different size
}}
15 v1
= (t1
)v2
; // -expected-error {{invalid conversion between vector type \
16 't1' and 't2' of different size
}}
19 v1
= (t1
)(char *)10; // -expected-error {{invalid conversion between vector \
20 type
't1' and scalar type
'char *'}}
21 v1
= (t1
)(long long)10;
22 v1
= (t1
)(short)10; // -expected-error {{invalid conversion between vector \
23 type
't1' and integer type
'int' of different size
}}
25 long long r1
= (long long)v1
;
26 short r2
= (short)v1
; // -expected-error {{invalid conversion between vector \
27 type
't1' and integer type
'short' of different size
}}
28 char *r3
= (char *)v1
; // -expected-error {{invalid conversion between vector\
29 type
't1' and scalar type
'char *'}}
36 f2(Y
); // expected-warning {{incompatible vector types passing 't3', expected 't2'}}