// RUN: %llvmgxx -O3 -S -o - %s struct A { virtual ~A(); }; template struct B : public A { ~B () { delete [] val; } private: Ty* val; }; template struct C : public A { C (); ~C (); }; template struct D : public A { D () {} private: B > blocks; }; template class D;