PR tree-optimization/81303
[official-gcc.git] / gcc / testsuite / gcc.dg / pr64536.c
blobf2728fbc938153724fb41bced97724c46c50e21f
1 /* PR rtl-optimization/64536 */
2 /* { dg-do link } */
3 /* { dg-options "-O2" } */
4 /* { dg-additional-options "-fPIC" { target fpic } } */
5 /* { dg-require-effective-target ptr32plus } */
7 struct S { long q; } *h;
8 long a, b, g, j, k, *c, *d, *e, *f, *i;
9 long *baz (void)
11 asm volatile ("" : : : "memory");
12 return e;
15 void
16 bar (int x)
18 int y;
19 for (y = 0; y < x; y++)
21 switch (b)
23 case 0:
24 case 2:
25 a++;
26 break;
27 case 3:
28 a++;
29 break;
30 case 1:
31 a++;
33 if (d)
35 f = baz ();
36 g = k++;
37 if (&h->q)
39 j = *f;
40 h->q = *f;
42 else
43 i = (long *) (h->q = *f);
44 *c++ = (long) f;
45 e += 6;
47 else
49 f = baz ();
50 g = k++;
51 if (&h->q)
53 j = *f;
54 h->q = *f;
56 else
57 i = (long *) (h->q = *f);
58 *c++ = (long) f;
59 e += 6;
64 int
65 main ()
67 return 0;