1 /* { dg-do compile } */
2 /* { dg-options "-std=gnu99" } */
3 
4 /* C99 6.5.3 Unary ~.  */
5 
test()6 void test ()
7 {
8   short _Fract sf;
9   _Fract f;
10   long _Fract lf;
11   long long _Fract llf;
12   unsigned short _Fract usf;
13   unsigned _Fract uf;
14   unsigned long _Fract ulf;
15   unsigned long long _Fract ullf;
16   _Sat short _Fract Ssf;
17   _Sat _Fract Sf;
18   _Sat long _Fract Slf;
19   _Sat long long _Fract Sllf;
20   _Sat unsigned short _Fract Susf;
21   _Sat unsigned _Fract Suf;
22   _Sat unsigned long _Fract Sulf;
23   _Sat unsigned long long _Fract Sullf;
24   short _Accum sa;
25   _Accum a;
26   long _Accum la;
27   long long _Accum lla;
28   unsigned short _Accum usa;
29   unsigned _Accum ua;
30   unsigned long _Accum ula;
31   unsigned long long _Accum ulla;
32   _Sat short _Accum Ssa;
33   _Sat _Accum Sa;
34   _Sat long _Accum Sla;
35   _Sat long long _Accum Slla;
36   _Sat unsigned short _Accum Susa;
37   _Sat unsigned _Accum Sua;
38   _Sat unsigned long _Accum Sula;
39   _Sat unsigned long long _Accum Sulla;
40 
41   /* C99 Section 6.5.3.3 ~ shall have integer types.  */
42 
43   ~sf; /* { dg-error "wrong type argument to bit-complement" } */
44   ~f; /* { dg-error "wrong type argument to bit-complement" } */
45   ~lf; /* { dg-error "wrong type argument to bit-complement" } */
46   ~llf; /* { dg-error "wrong type argument to bit-complement" } */
47   ~usf; /* { dg-error "wrong type argument to bit-complement" } */
48   ~uf; /* { dg-error "wrong type argument to bit-complement" } */
49   ~ulf; /* { dg-error "wrong type argument to bit-complement" } */
50   ~ullf; /* { dg-error "wrong type argument to bit-complement" } */
51   ~Ssf; /* { dg-error "wrong type argument to bit-complement" } */
52   ~Sf; /* { dg-error "wrong type argument to bit-complement" } */
53   ~Slf; /* { dg-error "wrong type argument to bit-complement" } */
54   ~Sllf; /* { dg-error "wrong type argument to bit-complement" } */
55   ~Susf; /* { dg-error "wrong type argument to bit-complement" } */
56   ~Suf; /* { dg-error "wrong type argument to bit-complement" } */
57   ~Sulf; /* { dg-error "wrong type argument to bit-complement" } */
58   ~Sullf; /* { dg-error "wrong type argument to bit-complement" } */
59   ~sa; /* { dg-error "wrong type argument to bit-complement" } */
60   ~a; /* { dg-error "wrong type argument to bit-complement" } */
61   ~la; /* { dg-error "wrong type argument to bit-complement" } */
62   ~lla; /* { dg-error "wrong type argument to bit-complement" } */
63   ~usa; /* { dg-error "wrong type argument to bit-complement" } */
64   ~ua; /* { dg-error "wrong type argument to bit-complement" } */
65   ~ula; /* { dg-error "wrong type argument to bit-complement" } */
66   ~ulla; /* { dg-error "wrong type argument to bit-complement" } */
67   ~Ssa; /* { dg-error "wrong type argument to bit-complement" } */
68   ~Sa; /* { dg-error "wrong type argument to bit-complement" } */
69   ~Sla; /* { dg-error "wrong type argument to bit-complement" } */
70   ~Slla; /* { dg-error "wrong type argument to bit-complement" } */
71   ~Susa; /* { dg-error "wrong type argument to bit-complement" } */
72   ~Sua; /* { dg-error "wrong type argument to bit-complement" } */
73   ~Sula; /* { dg-error "wrong type argument to bit-complement" } */
74   ~Sulla; /* { dg-error "wrong type argument to bit-complement" } */
75 
76 }
77