PR c++/86728 - C variadic generic lambda.
[official-gcc.git] / gcc / testsuite / g++.dg / opt / pr59947.C
blob71c51b226cea5f7f73b10fa128d90abfd346374b
1 // PR ipa/59947
2 // { dg-do compile { target c++11 } }
3 // { dg-options "-O0" }
5 #pragma GCC optimize ("O2")
6 template <typename T>
7 inline void
8 foo (T & a) noexcept { T tmp = static_cast <T &&> (a); };
9 struct A
11   A () noexcept : a (1), b (1) {}
12   virtual void c () noexcept = 0;
13   void d () noexcept { c (); }
14   int a;
15   int b;
17 struct B
19   ~B () noexcept { e->d (); }
20   A *e;
22 template <typename T>
23 struct C
25   B f;
27 struct D {};
28 template <typename T>
29 struct E
31   void bar () { foo (g); }
32   C <D> g;
34 template class E <char>;