diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr51628-10.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/pr51628-10.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr51628-10.c b/gcc/testsuite/gcc.dg/pr51628-10.c new file mode 100644 index 00000000000..03a04eff75c --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr51628-10.c @@ -0,0 +1,23 @@ +/* PR c/51628. */ +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +void foo (int *); + +int * +bar (int n, int k, void *ptr) +{ + struct A + { + int c[k]; + int x[n]; + } __attribute__ ((packed, aligned (4))); + struct A *p = (struct A *) ptr; + + int *p0, *p1; + p0 = p->x; + foo (p0); + p1 = &p->x[1]; + foo (p1); + return &p->x[1]; +} |