2009-07-17 Richard Guenther <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / pr36373-5.c
blob0061ef418ee8c3889fbc4f5a08b57c5d8bc87965
1 /* { dg-do run } */
2 /* { dg-options "-fno-tree-sra" } */
4 extern void abort (void);
5 struct Foo {
6 int *p;
7 int *q;
8 };
9 struct Foo __attribute__((noinline))
10 bar(int *p)
12 struct Foo f;
13 f.p = p;
14 return f;
16 void __attribute__((noinline))
17 foo(struct Foo f)
19 *f.p = 0;
21 int main()
23 int a, b;
24 a = 0;
25 b = 1;
26 struct Foo f;
27 f = bar (&b);
28 f.q = &a;
29 foo(f);
30 if (b != 0)
31 abort ();
32 return 0;