1 /* PR middle-end/27945 */ 2 /* { dg-do run } */ 3 /* { dg-options "" } */ 4 /* { dg-require-effective-target alloca } */ 5 6 extern int printf (const char *, ...); 7 extern void abort (); 8 func(int levels)9int func(int levels) 10 { 11 struct bar { 12 unsigned char a; 13 int b[levels]; 14 } __attribute__ ((__packed__)) bar; 15 16 struct foo { 17 unsigned char a; 18 int b[4]; 19 } __attribute__ ((__packed__)) foo; 20 21 printf("foo %d\n", sizeof(foo)); 22 printf("bar %d\n", sizeof(bar)); 23 24 if (sizeof (foo) != sizeof (bar)) 25 abort (); 26 } 27 main()28int main() 29 { 30 func(4); 31 return 0; 32 } 33