Merge from mainline.
[official-gcc.git] / gcc / testsuite / gcc.dg / compat / scalar-by-value-y.h
blob47a3613350733f4309f890236ac059482839d423
1 extern void abort (void);
3 #if USE_MEMCMP
4 /* For comparing vectors. */
5 #define TEST_FUNCS(NAME, TYPE, PADT, VAL, VAL2) \
6 void NAME##_f0 (TYPE a, PADT b) \
7 { \
8 if (memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
9 abort (); \
10 } \
12 void NAME##_f1 (PADT z0, TYPE a, PADT b) \
13 { \
14 if (z0 != (PADT) 0 \
15 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
16 abort (); \
17 } \
19 void NAME##_f2 (PADT z0, PADT z1, TYPE a, PADT b) \
20 { \
21 if (z0 != (PADT) 0 \
22 || z1 != (PADT) 0 \
23 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
24 abort (); \
25 } \
27 void NAME##_f3 (PADT z0, PADT z1, PADT z2, TYPE a, PADT b) \
28 { \
29 if (z0 != (PADT) 0 \
30 || z1 != (PADT) 0 \
31 || z2 != (PADT) 0 \
32 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
33 abort (); \
34 } \
36 void NAME##_f4 (PADT z0, PADT z1, PADT z2, PADT z3, TYPE a, PADT b) \
37 { \
38 if (z0 != (PADT) 0 \
39 || z1 != (PADT) 0 \
40 || z2 != (PADT) 0 \
41 || z3 != (PADT) 0 \
42 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
43 abort (); \
44 } \
46 void NAME##_f5 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, TYPE a, \
47 PADT b) \
48 { \
49 if (z0 != (PADT) 0 \
50 || z1 != (PADT) 0 \
51 || z2 != (PADT) 0 \
52 || z3 != (PADT) 0 \
53 || z4 != (PADT) 0 \
54 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
55 abort (); \
56 } \
58 void NAME##_f6 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
59 TYPE a, PADT b) \
60 { \
61 if (z0 != (PADT) 0 \
62 || z1 != (PADT) 0 \
63 || z2 != (PADT) 0 \
64 || z3 != (PADT) 0 \
65 || z4 != (PADT) 0 \
66 || z5 != (PADT) 0 \
67 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
68 abort (); \
69 } \
71 void NAME##_f7 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
72 PADT z6, TYPE a, PADT b) \
73 { \
74 if (z0 != (PADT) 0 \
75 || z1 != (PADT) 0 \
76 || z2 != (PADT) 0 \
77 || z3 != (PADT) 0 \
78 || z4 != (PADT) 0 \
79 || z5 != (PADT) 0 \
80 || z6 != (PADT) 0 \
81 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
82 abort (); \
83 } \
85 void NAME##_f8 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
86 PADT z6, PADT z7, TYPE a, PADT b) \
87 { \
88 if (z0 != (PADT) 0 \
89 || z1 != (PADT) 0 \
90 || z2 != (PADT) 0 \
91 || z3 != (PADT) 0 \
92 || z4 != (PADT) 0 \
93 || z5 != (PADT) 0 \
94 || z6 != (PADT) 0 \
95 || z7 != (PADT) 0 \
96 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
97 abort (); \
98 } \
100 void NAME##_f9 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
101 PADT z6, PADT z7, PADT z8, TYPE a, PADT b) \
103 if (z0 != (PADT) 0 \
104 || z1 != (PADT) 0 \
105 || z2 != (PADT) 0 \
106 || z3 != (PADT) 0 \
107 || z4 != (PADT) 0 \
108 || z5 != (PADT) 0 \
109 || z6 != (PADT) 0 \
110 || z7 != (PADT) 0 \
111 || z8 != (PADT) 0 \
112 || memcmp (&a, &VAL, sizeof (a)) != 0 || b != VAL2) \
113 abort (); \
116 void NAME##_fv (int n, ...) \
118 __builtin_va_list ap; \
119 TYPE x; \
120 __builtin_va_start (ap, n); \
122 while (n-- != 0) \
123 if (__builtin_va_arg (ap, PADT) != (PADT) 0) \
124 abort (); \
126 x = __builtin_va_arg (ap, TYPE); \
127 if (memcmp (&x, &VAL, sizeof (x)) != 0 ) \
128 abort (); \
130 if (__builtin_va_arg (ap, PADT) != VAL2) \
131 abort (); \
133 __builtin_va_end (ap); \
136 #else
138 #define TEST_FUNCS(NAME, TYPE, PADT, VAL, VAL2) \
139 void NAME##_f0 (TYPE a, PADT b) \
141 if (a != VAL || b != VAL2) \
142 abort (); \
145 void NAME##_f1 (PADT z0, TYPE a, PADT b) \
147 if (z0 != (PADT) 0 \
148 || a != VAL || b != VAL2) \
149 abort (); \
152 void NAME##_f2 (PADT z0, PADT z1, TYPE a, PADT b) \
154 if (z0 != (PADT) 0 \
155 || z1 != (PADT) 0 \
156 || a != VAL || b != VAL2) \
157 abort (); \
160 void NAME##_f3 (PADT z0, PADT z1, PADT z2, TYPE a, PADT b) \
162 if (z0 != (PADT) 0 \
163 || z1 != (PADT) 0 \
164 || z2 != (PADT) 0 \
165 || a != VAL || b != VAL2) \
166 abort (); \
169 void NAME##_f4 (PADT z0, PADT z1, PADT z2, PADT z3, TYPE a, PADT b) \
171 if (z0 != (PADT) 0 \
172 || z1 != (PADT) 0 \
173 || z2 != (PADT) 0 \
174 || z3 != (PADT) 0 \
175 || a != VAL || b != VAL2) \
176 abort (); \
179 void NAME##_f5 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, TYPE a, \
180 PADT b) \
182 if (z0 != (PADT) 0 \
183 || z1 != (PADT) 0 \
184 || z2 != (PADT) 0 \
185 || z3 != (PADT) 0 \
186 || z4 != (PADT) 0 \
187 || a != VAL || b != VAL2) \
188 abort (); \
191 void NAME##_f6 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
192 TYPE a, PADT b) \
194 if (z0 != (PADT) 0 \
195 || z1 != (PADT) 0 \
196 || z2 != (PADT) 0 \
197 || z3 != (PADT) 0 \
198 || z4 != (PADT) 0 \
199 || z5 != (PADT) 0 \
200 || a != VAL || b != VAL2) \
201 abort (); \
204 void NAME##_f7 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
205 PADT z6, TYPE a, PADT b) \
207 if (z0 != (PADT) 0 \
208 || z1 != (PADT) 0 \
209 || z2 != (PADT) 0 \
210 || z3 != (PADT) 0 \
211 || z4 != (PADT) 0 \
212 || z5 != (PADT) 0 \
213 || z6 != (PADT) 0 \
214 || a != VAL || b != VAL2) \
215 abort (); \
218 void NAME##_f8 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
219 PADT z6, PADT z7, TYPE a, PADT b) \
221 if (z0 != (PADT) 0 \
222 || z1 != (PADT) 0 \
223 || z2 != (PADT) 0 \
224 || z3 != (PADT) 0 \
225 || z4 != (PADT) 0 \
226 || z5 != (PADT) 0 \
227 || z6 != (PADT) 0 \
228 || z7 != (PADT) 0 \
229 || a != VAL || b != VAL2) \
230 abort (); \
233 void NAME##_f9 (PADT z0, PADT z1, PADT z2, PADT z3, PADT z4, PADT z5, \
234 PADT z6, PADT z7, PADT z8, TYPE a, PADT b) \
236 if (z0 != (PADT) 0 \
237 || z1 != (PADT) 0 \
238 || z2 != (PADT) 0 \
239 || z3 != (PADT) 0 \
240 || z4 != (PADT) 0 \
241 || z5 != (PADT) 0 \
242 || z6 != (PADT) 0 \
243 || z7 != (PADT) 0 \
244 || z8 != (PADT) 0 \
245 || a != VAL || b != VAL2) \
246 abort (); \
249 void NAME##_fv (int n, ...) \
251 __builtin_va_list ap; \
253 __builtin_va_start (ap, n); \
255 while (n-- != 0) \
256 if (__builtin_va_arg (ap, PADT) != (PADT) 0) \
257 abort (); \
259 if (__builtin_va_arg (ap, TYPE) != VAL) \
260 abort (); \
262 if (__builtin_va_arg (ap, PADT) != VAL2) \
263 abort (); \
265 __builtin_va_end (ap); \
268 #endif