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