// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - %s // RUN: %clang_cc1 -triple %ms_abi_triple -fno-rtti -emit-llvm -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;