PR c++/86728 - C variadic generic lambda.
[official-gcc.git] / gcc / testsuite / g++.dg / opt / pr64338.C
blob699d38ccea145cf9e01806c6963f3a3ec46b346c
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 } } }
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;
16 void
17 C::fn3 ()
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 ();