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