111
|
1 // PR target/64338
|
|
2 // { dg-do compile }
|
|
3 // { dg-options "-O2" }
|
|
4 // { dg-additional-options "-mtune=nehalem -march=i586" { target { { i?86-*-* x86_64-*-* } && ia32 } } }
|
|
5
|
|
6 enum O {};
|
|
7 struct A { A (); };
|
|
8 struct B { int fn1 (); };
|
|
9 struct C { struct D; D *fn2 (); void fn3 (); int fn4 (); };
|
|
10 struct F { void fn5 (const int & = 0); };
|
|
11 struct G { F *fn6 (); };
|
|
12 struct H { int h; };
|
|
13 struct C::D { friend class C; G *fn7 (); };
|
|
14 O a;
|
|
15
|
|
16 void
|
|
17 C::fn3 ()
|
|
18 {
|
|
19 int b = a;
|
|
20 H c;
|
|
21 if (b)
|
|
22 fn2 ()->fn7 ()->fn6 ()->fn5 ();
|
|
23 double d;
|
|
24 if (fn4 ())
|
|
25 d = c.h > 0;
|
|
26 A e (b ? A () : A ());
|
|
27 B f;
|
|
28 f.fn1 () && d && fn2 ();
|
|
29 }
|