1 /* { dg-do compile } */
2 /* { dg-options "-std=gnu99" } */
3 
4 /* N1169 7.18a.3 - Precision macros.
5 
6    Check if defined fixed-point constants are ok.  */
7 
8 #include <stdfix.h>
9 
10 short fract sf = SFRACT_MAX;
11 fract f = FRACT_MAX;
12 long fract lf = LFRACT_MAX;
13 long long fract llf = LLFRACT_MAX;
14 
15 unsigned short fract usf = USFRACT_MAX;
16 unsigned fract uf = UFRACT_MAX;
17 unsigned long fract ulf = ULFRACT_MAX;
18 unsigned long long fract ullf = ULLFRACT_MAX;
19 
20 sat short fract Ssf = SFRACT_MAX;
21 sat fract Sf = FRACT_MAX;
22 sat long fract Slf = LFRACT_MAX;
23 sat long long fract Sllf = LLFRACT_MAX;
24 
25 sat unsigned short fract Susf = USFRACT_MAX;
26 sat unsigned fract Suf = UFRACT_MAX;
27 sat unsigned long fract Sulf = ULFRACT_MAX;
28 sat unsigned long long fract Sullf = ULLFRACT_MAX;
29 
30 short fract sfm = SFRACT_MIN;
31 fract fm = FRACT_MIN;
32 long fract lfm = LFRACT_MIN;
33 long long fract llfm = LLFRACT_MIN;
34 
35 unsigned short fract usfm = USFRACT_MIN;
36 unsigned fract ufm = UFRACT_MIN;
37 unsigned long fract ulfm = ULFRACT_MIN;
38 unsigned long long fract ullfm = ULLFRACT_MIN;
39 
40 sat short fract Ssfm = SFRACT_MIN;
41 sat fract Sfm = FRACT_MIN;
42 sat long fract Slfm = LFRACT_MIN;
43 sat long long fract Sllfm = LLFRACT_MIN;
44 
45 sat unsigned short fract Susfm = USFRACT_MIN;
46 sat unsigned fract Sufm = UFRACT_MIN;
47 sat unsigned long fract Sulfm = ULFRACT_MIN;
48 sat unsigned long long fract Sullfm = ULLFRACT_MIN;
49 
50 short fract sfE = SFRACT_EPSILON;
51 fract fE = FRACT_EPSILON;
52 long fract lfE = LFRACT_EPSILON;
53 long long fract llfE = LLFRACT_EPSILON;
54 
55 unsigned short fract usfE = USFRACT_EPSILON;
56 unsigned fract ufE = UFRACT_EPSILON;
57 unsigned long fract ulfE = ULFRACT_EPSILON;
58 unsigned long long fract ullfE = ULLFRACT_EPSILON;
59 
60 sat short fract SsfE = SFRACT_EPSILON;
61 sat fract SfE = FRACT_EPSILON;
62 sat long fract SlfE = LFRACT_EPSILON;
63 sat long long fract SllfE = LLFRACT_EPSILON;
64 
65 sat unsigned short fract SusfE = USFRACT_EPSILON;
66 sat unsigned fract SufE = UFRACT_EPSILON;
67 sat unsigned long fract SulfE = ULFRACT_EPSILON;
68 sat unsigned long long fract SullfE = ULLFRACT_EPSILON;
69 
70 short accum sk = SACCUM_MAX;
71 accum k = ACCUM_MAX;
72 long accum lk = LACCUM_MAX;
73 long long accum llk = LLACCUM_MAX;
74 
75 unsigned short accum usk = USACCUM_MAX;
76 unsigned accum uk = UACCUM_MAX;
77 unsigned long accum ulk = ULACCUM_MAX;
78 unsigned long long accum ullk = ULLACCUM_MAX;
79 
80 sat short accum Ssk = SACCUM_MAX;
81 sat accum Sk = ACCUM_MAX;
82 sat long accum Slk = LACCUM_MAX;
83 sat long long accum Sllk = LLACCUM_MAX;
84 
85 sat unsigned short accum Susk = USACCUM_MAX;
86 sat unsigned accum Suk = UACCUM_MAX;
87 sat unsigned long accum Sulk = ULACCUM_MAX;
88 sat unsigned long long accum Sullk = ULLACCUM_MAX;
89 
90 short accum skm = SACCUM_MIN;
91 accum km = ACCUM_MIN;
92 long accum lkm = LACCUM_MIN;
93 long long accum llkm = LLACCUM_MIN;
94 
95 unsigned short accum uskm = USACCUM_MIN;
96 unsigned accum ukm = UACCUM_MIN;
97 unsigned long accum ulkm = ULACCUM_MIN;
98 unsigned long long accum ullkm = ULLACCUM_MIN;
99 
100 sat short accum Sskm = SACCUM_MIN;
101 sat accum Skm = ACCUM_MIN;
102 sat long accum Slkm = LACCUM_MIN;
103 sat long long accum Sllkm = LLACCUM_MIN;
104 
105 sat unsigned short accum Suskm = USACCUM_MIN;
106 sat unsigned accum Sukm = UACCUM_MIN;
107 sat unsigned long accum Sulkm = ULACCUM_MIN;
108 sat unsigned long long accum Sullkm = ULLACCUM_MIN;
109 
110 short accum skE = SACCUM_EPSILON;
111 accum kE = ACCUM_EPSILON;
112 long accum lkE = LACCUM_EPSILON;
113 long long accum llkE = LLACCUM_EPSILON;
114 
115 unsigned short accum uskE = USACCUM_EPSILON;
116 unsigned accum ukE = UACCUM_EPSILON;
117 unsigned long accum ulkE = ULACCUM_EPSILON;
118 unsigned long long accum ullkE = ULLACCUM_EPSILON;
119 
120 sat short accum SskE = SACCUM_EPSILON;
121 sat accum SkE = ACCUM_EPSILON;
122 sat long accum SlkE = LACCUM_EPSILON;
123 sat long long accum SllkE = LLACCUM_EPSILON;
124 
125 sat unsigned short accum SuskE = USACCUM_EPSILON;
126 sat unsigned accum SukE = UACCUM_EPSILON;
127 sat unsigned long accum SulkE = ULACCUM_EPSILON;
128 sat unsigned long long accum SullkE = ULLACCUM_EPSILON;
129 
130 int fbit_sf = SFRACT_FBIT;
131 int fbit_f = FRACT_FBIT;
132 int fbit_lf = LFRACT_FBIT;
133 int fbit_llf = LLFRACT_FBIT;
134 
135 int fbit_usf = USFRACT_FBIT;
136 int fbit_uf = UFRACT_FBIT;
137 int fbit_ulf = ULFRACT_FBIT;
138 int fbit_ullf = ULLFRACT_FBIT;
139 
140 int fbit_sk = SACCUM_FBIT;
141 int fbit_k = ACCUM_FBIT;
142 int fbit_lk = LACCUM_FBIT;
143 int fbit_llk = LLACCUM_FBIT;
144 
145 int fbit_usk = USACCUM_FBIT;
146 int fbit_uk = UACCUM_FBIT;
147 int fbit_ulk = ULACCUM_FBIT;
148 int fbit_ullk = ULLACCUM_FBIT;
149 
150 int ibit_sk = SACCUM_IBIT;
151 int ibit_k = ACCUM_IBIT;
152 int ibit_lk = LACCUM_IBIT;
153 int ibit_llk = LLACCUM_IBIT;
154 
155 int ibit_usk = USACCUM_IBIT;
156 int ibit_uk = UACCUM_IBIT;
157 int ibit_ulk = ULACCUM_IBIT;
158 int ibit_ullk = ULLACCUM_IBIT;
159