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