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