PR c++/81917 - ICE with void_t and partial specialization.
[official-gcc.git] / gcc / testsuite / g++.dg / opt / thunk3.C
blobbfd68744ade6b33cd9445e4e877331598807565f
1 // PR c++/39106
2 // { dg-do compile }
3 // { dg-options "-O2" }
5 extern "C" void abort ();
7 struct A
9   A (bool x = true);
11 class B
13   virtual bool bar (A &, int) const =0;
15 class C : virtual public B
18 struct D : virtual public B
20   bool bar (A &, int) const;
22 template <int N>
23 struct E : public D
25   bool bar (A &x, int y) const
26   {
27     return baz().bar (x, y);
28   }
29   const D & baz () const;
31 extern template class E<0>;
33 void
34 foo ()
36   try
37   {
38     A a;
39     abort ();
40   } catch (...)
41   {
42   }
43   A b;
44   E<0> c;
45   c.bar (b, 3);
46   E<0> d;
47   d.bar (b, 3);