1/* PR 15262. Similar to pr15262-1.c but with no obvious addresses 2 being taken in function foo(). Without IPA, by only looking inside 3 foo() we cannot tell for certain whether 'q' and 'b' alias each 4 other. */ 5struct A 6{ 7 int t; 8 int i; 9}; 10 11struct B 12{ 13 int *p; 14 float b; 15}; 16 17float X; 18 19foo (struct B b, struct A *q, float *h) 20{ 21 X += *h; 22 *(b.p) = 3; 23 q->t = 2; 24 return *(b.p); 25} 26 27main() 28{ 29 struct A a; 30 struct B b; 31 32 b.p = &a.t; 33 if (foo (b, &a, &X) == 3) 34 abort (); 35 36 return 0; 37} 38