#include #include "compat-common.h" #include "mixed-struct-defs.h" #include "mixed-struct-check.h" #ifdef SKIP_VA const int test_va = 0; #else const int test_va = 1; #endif #ifndef SKIP_VLA_IN_STRUCT #define T(NAME, FIELDS, TYPE, FIELDINIT, FIELDTEST) \ void \ testva##NAME (int n, ...) \ { \ va_list ap; \ if (test_va) \ { \ struct S { FIELDS TYPE a[n]; } s; \ int fail = 0, i, j; \ \ va_start (ap, n); \ for (j = 0; j < 2; ++j) \ { \ s = va_arg (ap, struct S); \ for (i = 0; i < n; ++i) \ if (s.a[i] != 12 + n - i) \ ++fail; \ if (fail) \ { DEBUG_FAIL; } \ if (!j && va_arg (ap, int) != n) \ { DEBUG_FAIL; } \ FIELDTEST; \ } \ va_end (ap); \ } \ } #include "struct-by-value-22_x.c" #endif