1 #include "struct-layout-1.h"
3 #define F(n, x, v, w) \
4 if (info.flds[i] != &s##n.x) \
6 if (info.sizes[i] != sizeof (s##n.x)) \
8 if (info.aligns[i] != __alignof__ (s##n.x)) \
10 if (s##n.x != (__typeof__ (s##n.x)) v) \
12 if (a##n[2].x != (__typeof__ (s##n.x)) w) \
14 if (arg0.x != s##n.x) \
16 if (arg2.x != a##n[2].x) \
21 if (info.flds[i] != &s##n.x) \
23 if (info.sizes[i] != sizeof (s##n.x)) \
25 if (info.aligns[i] != __alignof__ (s##n.x)) \
28 #define B(n, x, v, w) \
32 if (a##n[2].x != b2.x) \
34 if (arg0.x != s##n.x) \
36 if (arg2.x != a##n[2].x) \
40 #define TX(n, type, attrs, fields, ops) \
41 type S##n { fields } attrs; \
42 extern type S##n s##n; \
45 check##n (type S##n arg0, type S##n *arg1, type S##n arg2) \
51 memset (&ret, 0, sizeof (ret)); \
52 memset (&b1, 0, sizeof (b1)); \
53 memset (&b2, 0, sizeof (b2)); \
54 if (info.sp != &s##n) \
56 if (info.a0p != &a##n[0]) \
58 if (info.a3p != &a##n[3]) \
60 if (info.sz != sizeof (s##n)) \
62 if (info.als != __alignof__ (s##n)) \
64 if (info.ala0 != __alignof__ (a##n[0])) \
66 if (info.ala3 != __alignof__ (a##n[3])) \
68 if (arg1 != &a##n[1]) \
72 if (i != info.nfields || j != info.nbitfields) \