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