/* PR rtl-optimization/64536 */ /* { dg-do link } */ /* { dg-options "-O2" } */ /* { dg-additional-options "-fPIC" { target fpic } } */ struct S { long q; } *h; long a, b, g, j, k, *c, *d, *e, *f, *i; long *baz (void) { asm volatile ("" : : : "memory"); return e; } void bar (int x) { int y; for (y = 0; y < x; y++) { switch (b) { case 0: case 2: a++; break; case 3: a++; break; case 1: a++; } if (d) { f = baz (); g = k++; if (&h->q) { j = *f; h->q = *f; } else i = (long *) (h->q = *f); *c++ = (long) f; e += 6; } else { f = baz (); g = k++; if (&h->q) { j = *f; h->q = *f; } else i = (long *) (h->q = *f); *c++ = (long) f; e += 6; } } } int main () { return 0; }