29 lines
461 B
C++
29 lines
461 B
C++
|
// 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>;
|