1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
// RUN: %llvmgxx -O3 -S -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>;