/* { dg-options "-O2 -fgraphite-identity" } */ struct Foo { int **p; int **q; }; int __attribute__((noinline)) bar (void) { struct Foo f; int j, i = 1; char *p; int *x = &i; int *y = &j; f.p = &y; f.q = &x; p = (char *)&f; for (j = 0; j < sizeof (int *); ++j) p++; return ***(int ***)p; } extern void abort (void); int main() { if (bar () != 1) abort (); return 0; }