// { dg-do assemble } // Origin: Mark Mitchell template struct B { virtual void f() = 0; }; template struct D : public B { virtual void f(); }; void g() { B* bi = new D; } template void B::f() {}