1 /* { dg-do compile } */
2 /* { dg-options "-std=gnu99" } */
3 
4 typedef _Fract qq  __attribute__ ((mode (QQ)));
5 typedef _Fract hq  __attribute__ ((mode (HQ)));
6 typedef _Fract sq  __attribute__ ((mode (SQ)));
7 typedef _Fract dq  __attribute__ ((mode (DQ)));
8 typedef unsigned _Fract uqq  __attribute__ ((mode (UQQ)));
9 typedef unsigned _Fract uhq  __attribute__ ((mode (UHQ)));
10 typedef unsigned _Fract usq  __attribute__ ((mode (USQ)));
11 typedef unsigned _Fract udq  __attribute__ ((mode (UDQ)));
12 typedef _Sat _Fract Sqq  __attribute__ ((mode (QQ)));
13 typedef _Sat _Fract Shq  __attribute__ ((mode (HQ)));
14 typedef _Sat _Fract Ssq  __attribute__ ((mode (SQ)));
15 typedef _Sat _Fract Sdq  __attribute__ ((mode (DQ)));
16 typedef _Sat unsigned _Fract Suqq  __attribute__ ((mode (UQQ)));
17 typedef _Sat unsigned _Fract Suhq  __attribute__ ((mode (UHQ)));
18 typedef _Sat unsigned _Fract Susq  __attribute__ ((mode (USQ)));
19 typedef _Sat unsigned _Fract Sudq  __attribute__ ((mode (UDQ)));
20 typedef _Accum ha  __attribute__ ((mode (HA)));
21 typedef _Accum sa  __attribute__ ((mode (SA)));
22 typedef _Accum da  __attribute__ ((mode (DA)));
23 typedef unsigned _Accum uha  __attribute__ ((mode (UHA)));
24 typedef unsigned _Accum usa  __attribute__ ((mode (USA)));
25 typedef unsigned _Accum uda  __attribute__ ((mode (UDA)));
26 typedef _Sat _Accum Sha  __attribute__ ((mode (HA)));
27 typedef _Sat _Accum Ssa  __attribute__ ((mode (SA)));
28 typedef _Sat _Accum Sda  __attribute__ ((mode (DA)));
29 typedef _Sat unsigned _Accum Suha  __attribute__ ((mode (UHA)));
30 typedef _Sat unsigned _Accum Susa  __attribute__ ((mode (USA)));
31 typedef _Sat unsigned _Accum Suda  __attribute__ ((mode (UDA)));
32 
33 /* Not all platforms support TQ, UTQ, TA, UTA modes.  */
34 #if defined(__LP64__) && !defined(__hppa__)
35 typedef _Fract tq  __attribute__ ((mode (TQ)));
36 typedef unsigned _Fract utq  __attribute__ ((mode (UTQ)));
37 typedef _Sat _Fract Stq  __attribute__ ((mode (TQ)));
38 typedef _Sat unsigned _Fract Sutq  __attribute__ ((mode (UTQ)));
39 typedef _Accum ta  __attribute__ ((mode (TA)));
40 typedef unsigned _Accum uta  __attribute__ ((mode (UTA)));
41 typedef _Sat _Accum Sta  __attribute__ ((mode (TA)));
42 typedef _Sat unsigned _Accum Suta  __attribute__ ((mode (UTA)));
43 
44 int tqsize[sizeof (tq) == 16 ? 1 : -1];
45 int utqsize[sizeof (utq) == 16 ? 1 : -1];
46 int Stqsize[sizeof (Stq) == 16 ? 1 : -1];
47 int Sutqsize[sizeof (Sutq) == 16 ? 1 : -1];
48 int tasize[sizeof (ta) == 16 ? 1 : -1];
49 int utasize[sizeof (uta) == 16 ? 1 : -1];
50 int Stasize[sizeof (Sta) == 16 ? 1 : -1];
51 int Sutasize[sizeof (Suta) == 16 ? 1 : -1];
52 
53 int tqalign = __alignof (tq);
54 int utqalign = __alignof (utq);
55 int Stqalign = __alignof (Stq);
56 int Sutqalign = __alignof (Sutq);
57 int taalign = __alignof (ta);
58 int utaalign = __alignof (uta);
59 int Staalign = __alignof (Sta);
60 int Sutaalign = __alignof (Suta);
61 #endif
62 
63 int qqsize[sizeof (qq) == 1 ? 1 : -1];
64 int hqsize[sizeof (hq) == 2 ? 1 : -1];
65 int sqsize[sizeof (sq) == 4 ? 1 : -1];
66 int dqsize[sizeof (dq) == 8 ? 1 : -1];
67 int uqqsize[sizeof (qq) == 1 ? 1 : -1];
68 int uhqsize[sizeof (hq) == 2 ? 1 : -1];
69 int usqsize[sizeof (sq) == 4 ? 1 : -1];
70 int udqsize[sizeof (dq) == 8 ? 1 : -1];
71 int Sqqsize[sizeof (Sqq) == 1 ? 1 : -1];
72 int Shqsize[sizeof (Shq) == 2 ? 1 : -1];
73 int Ssqsize[sizeof (Ssq) == 4 ? 1 : -1];
74 int Sdqsize[sizeof (Sdq) == 8 ? 1 : -1];
75 int Suqqsize[sizeof (Sqq) == 1 ? 1 : -1];
76 int Suhqsize[sizeof (Shq) == 2 ? 1 : -1];
77 int Susqsize[sizeof (Ssq) == 4 ? 1 : -1];
78 int Sudqsize[sizeof (Sdq) == 8 ? 1 : -1];
79 int hasize[sizeof (ha) == 2 ? 1 : -1];
80 int sasize[sizeof (sa) == 4 ? 1 : -1];
81 int dasize[sizeof (da) == 8 ? 1 : -1];
82 int uhasize[sizeof (uha) == 2 ? 1 : -1];
83 int usasize[sizeof (usa) == 4 ? 1 : -1];
84 int udasize[sizeof (uda) == 8 ? 1 : -1];
85 int Shasize[sizeof (Sha) == 2 ? 1 : -1];
86 int Ssasize[sizeof (Ssa) == 4 ? 1 : -1];
87 int Sdasize[sizeof (Sda) == 8 ? 1 : -1];
88 int Suhasize[sizeof (Suha) == 2 ? 1 : -1];
89 int Susasize[sizeof (Susa) == 4 ? 1 : -1];
90 int Sudasize[sizeof (Suda) == 8 ? 1 : -1];
91 
92 int qqalign = __alignof (qq);
93 int hqalign = __alignof (hq);
94 int sqalign = __alignof (sq);
95 int dqalign = __alignof (dq);
96 int uqqalign = __alignof (uqq);
97 int uhqalign = __alignof (uhq);
98 int usqalign = __alignof (usq);
99 int udqalign = __alignof (udq);
100 int Sqqalign = __alignof (Sqq);
101 int Shqalign = __alignof (Shq);
102 int Ssqalign = __alignof (Ssq);
103 int Sdqalign = __alignof (Sdq);
104 int Suqqalign = __alignof (Suqq);
105 int Suhqalign = __alignof (Suhq);
106 int Susqalign = __alignof (Susq);
107 int Sudqalign = __alignof (Sudq);
108 int haalign = __alignof (ha);
109 int saalign = __alignof (sa);
110 int daalign = __alignof (da);
111 int uhaalign = __alignof (uha);
112 int usaalign = __alignof (usa);
113 int udaalign = __alignof (uda);
114 int Shaalign = __alignof (Sha);
115 int Ssaalign = __alignof (Ssa);
116 int Sdaalign = __alignof (Sda);
117 int Suhaalign = __alignof (Suha);
118 int Susaalign = __alignof (Susa);
119 int Sudaalign = __alignof (Suda);
120