// { dg-do run } | |
// Origin: Mark Mitchell <mark@codesourcery.com> | |
struct B | |
{ | |
B (); | |
virtual void f () = 0; | |
}; | |
B::B () | |
{ | |
} | |
extern B* bp; | |
template <class T> | |
struct C : public B | |
{ | |
virtual void f () | |
{ | |
} | |
}; | |
template <class T> | |
struct D : public B | |
{ | |
virtual void f () | |
{ | |
bp = new C<T*>; | |
} | |
}; | |
B* bp = new D<int>; | |
int main () | |
{ | |
bp->f (); | |
bp->f (); | |
} | |