Fortran: Fix PR 47485.
[gcc.git] / gcc / testsuite / g++.dg / compat / struct-layout-1_y1.h
bloba0bbccd25ceef5cade9e4f1f88f02b0102fed41e
1 #include "struct-layout-1.h"
3 #define F(n, x, v, w) \
4 if (info.flds[i] != &s##n.x) \
5 FAIL (n, 50); \
6 if (info.sizes[i] != sizeof (s##n.x)) \
7 FAIL (n, 51); \
8 if (info.aligns[i] != __alignof__ (s##n.x)) \
9 FAIL (n, 52); \
10 if (s##n.x != (__typeof__ (s##n.x)) v) \
11 FAIL (n, 53); \
12 if (a##n[2].x != (__typeof__ (s##n.x)) w) \
13 FAIL (n, 54); \
14 if (arg0.x != s##n.x) \
15 FAIL (n, 55); \
16 if (arg2.x != a##n[2].x) \
17 FAIL (n, 56); \
18 ret.x = s##n.x; \
19 ++i;
20 #define N(n, x) \
21 if (info.flds[i] != &s##n.x) \
22 FAIL (n, 50); \
23 if (info.sizes[i] != sizeof (s##n.x)) \
24 FAIL (n, 51); \
25 if (info.aligns[i] != __alignof__ (s##n.x)) \
26 FAIL (n, 52); \
27 ++i;
28 #define B(n, x, v, w) \
29 b1.x = v; b2.x = w; \
30 if (s##n.x != b1.x) \
31 FAIL (n, 53); \
32 if (a##n[2].x != b2.x) \
33 FAIL (n, 54); \
34 if (arg0.x != s##n.x) \
35 FAIL (n, 55); \
36 if (arg2.x != a##n[2].x) \
37 FAIL (n, 56); \
38 ret.x = s##n.x; \
39 ++j;
40 #ifdef CXX14_VS_CXX17
41 struct empty_base {};
42 #define EMPTY_BASE : public empty_base
43 #else
44 #define EMPTY_BASE
45 #endif
46 #define TX(n, type, attrs, fields, ops) \
47 type S##n EMPTY_BASE { fields } attrs; \
48 extern type S##n s##n; \
49 type S##n a##n[5]; \
50 type S##n \
51 check##n (type S##n arg0, type S##n *arg1, type S##n arg2) \
52 { \
53 type S##n ret; \
54 type S##n b1, b2; \
55 int i, j; \
57 memset (&ret, 0, sizeof (ret)); \
58 memset (&b1, 0, sizeof (b1)); \
59 memset (&b2, 0, sizeof (b2)); \
60 if (info.sp != &s##n) \
61 FAIL (n, 10); \
62 if (info.a0p != &a##n[0]) \
63 FAIL (n, 11); \
64 if (info.a3p != &a##n[3]) \
65 FAIL (n, 12); \
66 if (info.sz != sizeof (s##n)) \
67 FAIL (n, 13); \
68 if (info.als != __alignof__ (s##n)) \
69 FAIL (n, 14); \
70 if (info.ala0 != __alignof__ (a##n[0])) \
71 FAIL (n, 15); \
72 if (info.ala3 != __alignof__ (a##n[3])) \
73 FAIL (n, 16); \
74 if (arg1 != &a##n[1]) \
75 FAIL (n, 17); \
76 i = 0; j = 0; \
77 ops \
78 if (i != info.nfields || j != info.nbitfields) \
79 FAIL (n, 18); \
81 return ret; \