1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fno-tree-forwprop -fno-tree-ccp -fdump-tree-ealias" } */
3 
4 extern void abort (void);
5 struct X {
6   int *p;
7   int *q;
8   int *r;
9 };
10 int __attribute__((noinline))
foo(int i,int j,int k,int off)11 foo(int i, int j, int k, int off)
12 {
13   struct X x;
14   int **p, *q;
15   x.p = &i;
16   x.q = &j;
17   x.r = &k;
18   p = &x.q;
19   p -= 1;
20   /* *p points to { i } */
21   q = *p;
22   return *q;
23 }
24 
25 /* { dg-final { scan-tree-dump "q_. = { i }" "ealias" } } */
26