1/* { dg-do run } */ 2/* { dg-options "-O2 -fno-tree-sra -fipa-pta -fdump-ipa-pta" } */ 3 4struct X 5{ 6 long l1; 7 struct Y 8 { 9 long l2; 10 int *p; 11 } y; 12}; 13int i; 14static int __attribute__((noinline)) 15foo (struct X *x) 16{ 17 struct Y y = x->y; 18 *y.p = 0; 19 i = 1; 20 return *y.p; 21} 22extern void abort (void); 23int main() 24{ 25 struct X x; 26 x.y.p = &i; 27 if (foo(&x) != 1) 28 abort (); 29 return 0; 30} 31 32/* { dg-final { scan-ipa-dump "y.\[0-9\]*\\\+\[0-9\]* = { i }" "pta" } } */ 33/* { dg-final { cleanup-ipa-dump "pta" } } */ 34