1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// { dg-do assemble } // Origin: Mark Mitchell <mark@codesourcery.com> template <class T> struct B { virtual void f() = 0; }; template <class T> struct D : public B<T> { virtual void f(); }; void g() { B<int>* bi = new D<int>; } template <class T> void B<T>::f() {}