/* { dg-do compile } */ /* { dg-options "-O2 -fno-tree-forwprop -fno-tree-ccp -fdump-tree-ealias" } */ extern void abort (void); struct X { int *p; int *q; int *r; }; int __attribute__((noinline)) foo(int i, int j, int k, int off) { struct X x; int **p, *q; x.p = &i; x.q = &j; x.r = &k; p = &x.q; p -= 1; /* *p points to { i } */ q = *p; return *q; } /* { dg-final { scan-tree-dump "q_. = { i }" "ealias" } } */ /* { dg-final { cleanup-tree-dump "ealias" } } */