blob: 699d38ccea145cf9e01806c6963f3a3ec46b346c [file] [log] [blame]
// PR target/64338
// { dg-do compile }
// { dg-options "-O2" }
// { dg-additional-options "-mtune=nehalem -march=i586" { target { { i?86-*-* x86_64-*-* } && ia32 } } }
enum O {};
struct A { A (); };
struct B { int fn1 (); };
struct C { struct D; D *fn2 (); void fn3 (); int fn4 (); };
struct F { void fn5 (const int & = 0); };
struct G { F *fn6 (); };
struct H { int h; };
struct C::D { friend class C; G *fn7 (); };
O a;
void
C::fn3 ()
{
int b = a;
H c;
if (b)
fn2 ()->fn7 ()->fn6 ()->fn5 ();
double d;
if (fn4 ())
d = c.h > 0;
A e (b ? A () : A ());
B f;
f.fn1 () && d && fn2 ();
}