1 /* { dg-options "-O2 -fgraphite-identity" } */
2
3 struct Foo {
4 int **p;
5 int **q;
6 };
7
8 int __attribute__((noinline))
9 bar (void)
10 {
11 struct Foo f;
12 int j, i = 1;
13 char *p;
14 int *x = &i;
15 int *y = &j;
16 f.p = &y;
17 f.q = &x;
18 p = (char *)&f;
19 for (j = 0; j < sizeof (int *); ++j)
20 p++;
21 return ***(int ***)p;
22 }
23 extern void abort (void);
24 int main()
25 {
26 if (bar () != 1)
27 abort ();
28 return 0;
29 }