/* { dg-do run } */ namespace FOO { template class A { public: void Enum(); virtual void OnProv() = 0; virtual ~A() { } }; typedef A B; template void A::Enum () { OnProv (); } } // namespace FOO class C {}; class D: public C, public FOO::B { public: void OnProv() {} }; int main(int argc, char *argv[]) { D x; x.Enum(); return 0; }