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