1// { dg-do run } 2extern "C" void abort(); 3 4class X 5{ 6 public: 7 virtual int f() const = 0; 8}; 9 10template <class T> 11class Y: public X 12{ 13 public: 14 virtual int f() const; 15}; 16 17template <class T> 18int Y<T>::f() const 19{ 20 abort(); 21 return 0; 22} 23 24template <> 25int Y<bool>::f() const; 26 27template <> 28int Y<bool>::f() const 29{ 30 return 0; 31} 32 33int main() 34{ 35 Y<bool> yb; 36 37 yb.f(); 38} 39