/* PR middle-end/27945 */ /* { dg-do run } */ /* { dg-options "" } */ extern int printf (const char *, ...); extern void abort (); int func(int levels) { struct bar { unsigned char a; int b[levels]; } __attribute__ ((__packed__)) bar; struct foo { unsigned char a; int b[4]; } __attribute__ ((__packed__)) foo; printf("foo %d\n", sizeof(foo)); printf("bar %d\n", sizeof(bar)); if (sizeof (foo) != sizeof (bar)) abort (); } int main() { func(4); return 0; }