1 /* { dg-options "-O2 -fgraphite-identity" } */
2 
3 struct Foo {
4   int **p;
5   int **q;
6 };
7 
8 int __attribute__((noinline))
bar(void)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);
main()24 int main()
25 {
26   if (bar () != 1)
27     abort ();
28   return 0;
29 }
30