diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/packed-vla.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/packed-vla.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/packed-vla.c b/gcc/testsuite/gcc.dg/packed-vla.c new file mode 100644 index 000000000..04ccb9663 --- /dev/null +++ b/gcc/testsuite/gcc.dg/packed-vla.c @@ -0,0 +1,31 @@ +/* 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; +} |