// PR middle-end/60597 // { dg-do compile } // { dg-options "-O2 -g" } struct A { int foo () const; int bar () const; int a; }; struct B { int foo (); int bar (); }; int *c, d; int A::foo () const { int b = a >> 16; return b; } int A::bar () const { int b = a; return b; } void baz (A &x, B h, int i, int j) { for (; i < h.bar (); ++i) for (; h.foo (); ++j) { int g = x.foo (); int f = x.bar (); int e = c[0] & 1; d = (e << 1) | (g << 16) | (f & 1); c[j] = 0; } }