/* PR c/51628. */ /* { dg-do compile } */ /* { dg-options "-O" } */ void foo (int *); int * bar (int n, int k, void *ptr) { struct A { char c[k]; int x[n]; } __attribute__ ((packed)); struct A *p = (struct A *) ptr; int *p0, *p1; p0 = p->x; /* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ foo (p0); p1 = &p->x[1]; /* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ foo (p1); return &p->x[1]; /* { dg-warning "may result in an unaligned pointer value" "" { target *-*-* } .-1 } */ }