PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr15262-2.c
blob82e8aabd1aba0d2c7cfaea1469d70e55a9d12077
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. */
5 struct A
7 int t;
8 int i;
9 };
11 struct B
13 int *p;
14 float b;
17 float X;
19 foo (struct B b, struct A *q, float *h)
21 X += *h;
22 *(b.p) = 3;
23 q->t = 2;
24 return *(b.p);
27 main()
29 struct A a;
30 struct B b;
32 b.p = &a.t;
33 if (foo (b, &a, &X) == 3)
34 abort ();
36 return 0;