// RUN: %clang_cc1 -verify -ffixed-point %s

void func() {
  _Bool b;
  char c;
  int i;
  float f;
  double d;
  double _Complex dc;
  int _Complex ic;
  struct S {
    int i;
  } s;
  enum E {
    A
  } e;
  int *ptr;
  typedef int int_t;
  int_t i2;

  _Accum accum;
  _Fract fract = accum; // ok
  _Accum *accum_ptr;

  accum = f;       // expected-error{{conversion between fixed point and 'float' is not yet supported}}
  accum = d;       // expected-error{{conversion between fixed point and 'double' is not yet supported}}
  accum = dc;      // expected-error{{conversion between fixed point and '_Complex double' is not yet supported}}
  accum = ic;      // expected-error{{conversion between fixed point and '_Complex int' is not yet supported}}
  accum = s;       // expected-error{{assigning to '_Accum' from incompatible type 'struct S'}}
  accum = ptr;     // expected-error{{assigning to '_Accum' from incompatible type 'int *'}}
  accum_ptr = ptr; // expected-warning{{incompatible pointer types assigning to '_Accum *' from 'int *'}}

  f = accum;       // expected-error{{conversion between fixed point and 'float' is not yet supported}}
  d = accum;       // expected-error{{conversion between fixed point and 'double' is not yet supported}}
  dc = accum;      // expected-error{{conversion between fixed point and '_Complex double' is not yet supported}}
  ic = accum;      // expected-error{{conversion between fixed point and '_Complex int' is not yet supported}}
  s = accum;       // expected-error{{assigning to 'struct S' from incompatible type '_Accum'}}
  ptr = accum;     // expected-error{{assigning to 'int *' from incompatible type '_Accum'}}
  ptr = accum_ptr; // expected-warning{{incompatible pointer types assigning to 'int *' from '_Accum *'}}
}
