37 lines · c
1// RUN: %clang_cc1 -verify -ffixed-point %s2 3void func(void) {4 _Bool b;5 char c;6 int i;7 float f;8 double d;9 double _Complex dc;10 int _Complex ic;11 struct S {12 int i;13 } s;14 enum E {15 A16 } e;17 int *ptr;18 typedef int int_t;19 int_t i2;20 21 _Accum accum;22 _Fract fract = accum; // ok23 _Accum *accum_ptr;24 25 accum = dc; // expected-error{{conversion between fixed point and '_Complex double' is not yet supported}}26 accum = ic; // expected-error{{conversion between fixed point and '_Complex int' is not yet supported}}27 accum = s; // expected-error{{assigning to '_Accum' from incompatible type 'struct S'}}28 accum = ptr; // expected-error{{assigning to '_Accum' from incompatible type 'int *'}}29 accum_ptr = ptr; // expected-error{{incompatible pointer types assigning to '_Accum *' from 'int *'}}30 31 dc = accum; // expected-error{{conversion between fixed point and '_Complex double' is not yet supported}}32 ic = accum; // expected-error{{conversion between fixed point and '_Complex int' is not yet supported}}33 s = accum; // expected-error{{assigning to 'struct S' from incompatible type '_Accum'}}34 ptr = accum; // expected-error{{assigning to 'int *' from incompatible type '_Accum'}}35 ptr = accum_ptr; // expected-error{{incompatible pointer types assigning to 'int *' from '_Accum *'}}36}37