LWG 3035. std::allocator's constructors should be constexpr
[official-gcc.git] / gcc / testsuite / gcc.dg / compat / scalar-by-value-y.h
blobe181a7e34e5d32cb17c2189c4b5031b9e91e7e96
1 extern void abort (void);
3 #ifdef __GNUC__
4 #define va_list __builtin_va_list
5 #define va_start __builtin_va_start
6 #define va_arg __builtin_va_arg
7 #define va_end __builtin_va_end
8 #else
9 #include <stdarg.h>
10 #endif
12 #if USE_MEMCMP
13 /* For comparing vectors. */
14 #define TEST_FUNCS(NAME, TYPE, PADT, VAL, VAL2) \
15 void NAME##_f0 (TYPE a, PADT b) \
16 { \
17 if (memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
18 abort (); \
19 } \
21 void NAME##_f1 (PADT z0, TYPE a, PADT b) \
22 { \
23 if (z0 != (PADT) 0 \
24 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
25 abort (); \
26 } \
28 void NAME##_f2 (PADT z0, PADT z1, TYPE a, PADT b) \
29 { \
30 if (z0 != (PADT) 0 \
31 || z1 != (PADT) 0 \
32 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
33 abort (); \
34 } \
36 void NAME##_f3 (PADT z0, PADT z1, PADT z2, TYPE a, PADT b) \
37 { \
38 if (z0 != (PADT) 0 \
39 || z1 != (PADT) 0 \
40 || z2 != (PADT) 0 \
41 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
42 abort (); \
43 } \
45 void NAME##_f4 (PADT z0, PADT z1, PADT z2, PADT z3, TYPE a, PADT b) \
46 { \
47 if (z0 != (PADT) 0 \
48 || z1 != (PADT) 0 \
49 || z2 != (PADT) 0 \
50 || z3 != (PADT) 0 \
51 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
52 abort (); \
53 } \
55 void NAME##_f5 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, TYPE a, \
56 PADT b) \
57 { \
58 if (z0 != (PADT) 0 \
59 || z1 != (PADT) 0 \
60 || z2 != (PADT) 0 \
61 || z3 != (PADT) 0 \
62 || z4 != (PADT) 0 \
63 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
64 abort (); \
65 } \
67 void NAME##_f6 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
68 TYPE a, PADT b) \
69 { \
70 if (z0 != (PADT) 0 \
71 || z1 != (PADT) 0 \
72 || z2 != (PADT) 0 \
73 || z3 != (PADT) 0 \
74 || z4 != (PADT) 0 \
75 || z5 != (PADT) 0 \
76 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
77 abort (); \
78 } \
80 void NAME##_f7 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
81 PADT z6, TYPE a, PADT b) \
82 { \
83 if (z0 != (PADT) 0 \
84 || z1 != (PADT) 0 \
85 || z2 != (PADT) 0 \
86 || z3 != (PADT) 0 \
87 || z4 != (PADT) 0 \
88 || z5 != (PADT) 0 \
89 || z6 != (PADT) 0 \
90 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
91 abort (); \
92 } \
94 void NAME##_f8 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
95 PADT z6, PADT z7, TYPE a, PADT b) \
96 { \
97 if (z0 != (PADT) 0 \
98 || z1 != (PADT) 0 \
99 || z2 != (PADT) 0 \
100 || z3 != (PADT) 0 \
101 || z4 != (PADT) 0 \
102 || z5 != (PADT) 0 \
103 || z6 != (PADT) 0 \
104 || z7 != (PADT) 0 \
105 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
106 abort (); \
109 void NAME##_f9 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
110 PADT z6, PADT z7, PADT z8, TYPE a, PADT b) \
112 if (z0 != (PADT) 0 \
113 || z1 != (PADT) 0 \
114 || z2 != (PADT) 0 \
115 || z3 != (PADT) 0 \
116 || z4 != (PADT) 0 \
117 || z5 != (PADT) 0 \
118 || z6 != (PADT) 0 \
119 || z7 != (PADT) 0 \
120 || z8 != (PADT) 0 \
121 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
122 abort (); \
125 void NAME##_fv (int n, ...) \
127 va_list ap; \
128 TYPE x; \
129 va_start (ap, n); \
131 while (n-- != 0) \
132 if (va_arg (ap, PADT) != (PADT) 0) \
133 abort (); \
135 x = va_arg (ap, TYPE); \
136 if (memcmp (&x, &VAL, sizeof (x)) != 0 ) \
137 abort (); \
139 if (va_arg (ap, PADT) != VAL2) \
140 abort (); \
142 va_end (ap); \
145 #else
147 #define TEST_FUNCS(NAME, TYPE, PADT, VAL, VAL2) \
148 void NAME##_f0 (TYPE a, PADT b) \
150 if (a != VAL || b != VAL2) \
151 abort (); \
154 void NAME##_f1 (PADT z0, TYPE a, PADT b) \
156 if (z0 != (PADT) 0 \
157 || a != VAL || b != VAL2) \
158 abort (); \
161 void NAME##_f2 (PADT z0, PADT z1, TYPE a, PADT b) \
163 if (z0 != (PADT) 0 \
164 || z1 != (PADT) 0 \
165 || a != VAL || b != VAL2) \
166 abort (); \
169 void NAME##_f3 (PADT z0, PADT z1, PADT z2, TYPE a, PADT b) \
171 if (z0 != (PADT) 0 \
172 || z1 != (PADT) 0 \
173 || z2 != (PADT) 0 \
174 || a != VAL || b != VAL2) \
175 abort (); \
178 void NAME##_f4 (PADT z0, PADT z1, PADT z2, PADT z3, TYPE a, PADT b) \
180 if (z0 != (PADT) 0 \
181 || z1 != (PADT) 0 \
182 || z2 != (PADT) 0 \
183 || z3 != (PADT) 0 \
184 || a != VAL || b != VAL2) \
185 abort (); \
188 void NAME##_f5 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, TYPE a, \
189 PADT b) \
191 if (z0 != (PADT) 0 \
192 || z1 != (PADT) 0 \
193 || z2 != (PADT) 0 \
194 || z3 != (PADT) 0 \
195 || z4 != (PADT) 0 \
196 || a != VAL || b != VAL2) \
197 abort (); \
200 void NAME##_f6 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
201 TYPE a, PADT b) \
203 if (z0 != (PADT) 0 \
204 || z1 != (PADT) 0 \
205 || z2 != (PADT) 0 \
206 || z3 != (PADT) 0 \
207 || z4 != (PADT) 0 \
208 || z5 != (PADT) 0 \
209 || a != VAL || b != VAL2) \
210 abort (); \
213 void NAME##_f7 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
214 PADT z6, TYPE a, PADT b) \
216 if (z0 != (PADT) 0 \
217 || z1 != (PADT) 0 \
218 || z2 != (PADT) 0 \
219 || z3 != (PADT) 0 \
220 || z4 != (PADT) 0 \
221 || z5 != (PADT) 0 \
222 || z6 != (PADT) 0 \
223 || a != VAL || b != VAL2) \
224 abort (); \
227 void NAME##_f8 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
228 PADT z6, PADT z7, TYPE a, PADT b) \
230 if (z0 != (PADT) 0 \
231 || z1 != (PADT) 0 \
232 || z2 != (PADT) 0 \
233 || z3 != (PADT) 0 \
234 || z4 != (PADT) 0 \
235 || z5 != (PADT) 0 \
236 || z6 != (PADT) 0 \
237 || z7 != (PADT) 0 \
238 || a != VAL || b != VAL2) \
239 abort (); \
242 void NAME##_f9 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
243 PADT z6, PADT z7, PADT z8, TYPE a, PADT b) \
245 if (z0 != (PADT) 0 \
246 || z1 != (PADT) 0 \
247 || z2 != (PADT) 0 \
248 || z3 != (PADT) 0 \
249 || z4 != (PADT) 0 \
250 || z5 != (PADT) 0 \
251 || z6 != (PADT) 0 \
252 || z7 != (PADT) 0 \
253 || z8 != (PADT) 0 \
254 || a != VAL || b != VAL2) \
255 abort (); \
258 void NAME##_fv (int n, ...) \
260 va_list ap; \
262 va_start (ap, n); \
264 while (n-- != 0) \
265 if (va_arg (ap, PADT) != (PADT) 0) \
266 abort (); \
268 if (va_arg (ap, TYPE) != VAL) \
269 abort (); \
271 if (va_arg (ap, PADT) != VAL2) \
272 abort (); \
274 va_end (ap); \
277 #endif