// 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 <typename Ty>
struct B : public A {
~B () { delete [] val; }
private:
Ty* val;
};
template <typename Ty>
struct C : public A {
C ();
~C ();
};
template <typename Ty>
struct D : public A {
D () {}
private:
B<C<Ty> > blocks;
};
template class D<double>;