1// RUN: %clang_cc1 -emit-llvm -o - %s 2 3struct A { 4 virtual ~A(); 5}; 6 7template <typename Ty> 8struct B : public A { 9 ~B () { delete [] val; } 10private: 11 Ty* val; 12}; 13 14template <typename Ty> 15struct C : public A { 16 C (); 17 ~C (); 18}; 19 20template <typename Ty> 21struct D : public A { 22 D () {} 23 private: 24 B<C<Ty> > blocks; 25}; 26 27template class D<double>; 28