LWG 3035. std::allocator's constructors should be constexpr
[official-gcc.git] / gcc / testsuite / gcc.dg / compat / struct-by-value-1_y.c
blob8370dbac34220216b617669b49a263ddf40c2f7c
1 #define T(N) \
2 struct S##N { unsigned char i[N]; }; \
3 extern struct S##N g1s##N, g2s##N, g3s##N; \
5 extern void check##N (struct S##N x, int i); \
6 extern void test2_##N (struct S##N s1, struct S##N s2); \
8 void \
9 init##N (struct S##N *p, int i) \
10 { \
11 int j; \
12 for (j = 0; j < N; j++) \
13 p->i[j] = i + j; \
14 } \
16 void \
17 checkg##N (void) \
18 { \
19 check##N (g1s##N, 64); \
20 check##N (g2s##N, 128); \
21 check##N (g3s##N, 192); \
22 } \
24 void \
25 test##N (struct S##N s1, struct S##N s2, \
26 struct S##N s3) \
27 { \
28 check##N (s1, 64); \
29 check##N (s2, 128); \
30 check##N (s3, 192); \
33 #ifndef SKIP_ZERO_ARRAY
34 T(0)
35 #endif
36 T(1) T(2) T(3) T(4) T(5) T(6) T(7)
37 T(8) T(9) T(10) T(11) T(12) T(13) T(14) T(15)
38 T(16) T(17) T(18) T(19) T(20) T(21) T(22) T(23)
39 T(24) T(25) T(26) T(27) T(28) T(29) T(30) T(31)
40 T(32) T(33) T(34) T(35) T(36) T(37) T(38) T(39)
41 T(40) T(41) T(42) T(43) T(44) T(45) T(46) T(47)
42 T(48) T(49) T(50) T(51) T(52) T(53) T(54) T(55)
43 T(56) T(57) T(58) T(59) T(60) T(61) T(62) T(63)