1// { dg-do assemble  }
2
3class X
4{
5  public:
6    virtual void f() const = 0;
7};
8
9template <class T>
10class Y: public X
11{
12  public:
13    virtual void f() const;
14};
15
16template <class T>
17void Y<T>::f() const
18{
19}
20
21template <>
22void Y<bool>::f() const;
23
24template <>
25void Y<bool>::f() const
26{
27}
28