/* { dg-do run } */ /* { dg-options "-O" } */ #pragma pack(1) struct S0 { #if __SIZEOF_INT >= 4 int f0:24; #else __INT32_TYPE__ f0:24; #endif }; struct S1 { int f1; } a; int b, c; char fn1 (struct S1 p1) { return 0; } int main () { c = fn1 (a); if (b) { struct S0 f[3][9] = { { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } }, { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } }, { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } } }; b = f[1][8].f0; } struct S0 g[3][9] = { { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } }, { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } }, { { 0 }, { 0 }, { 1 }, { 1 }, { 0 }, { 0 }, { 0 }, { 1 }, { 1 } } }; if (g[1][8].f0 != 1) __builtin_abort (); return 0; }