Daniel Dunbar | a572887 | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 %s -emit-llvm -o - |
Anders Carlsson | 174754c | 2009-09-01 18:33:46 +0000 | [diff] [blame] | 2 | struct A { |
3 | int a; | ||||
4 | |||||
5 | ~A(); | ||||
6 | }; | ||||
7 | |||||
8 | // Base with non-trivial destructor | ||||
9 | struct B : A { | ||||
10 | ~B(); | ||||
11 | }; | ||||
12 | |||||
13 | B::~B() { } | ||||
14 | |||||
15 | // Field with non-trivial destructor | ||||
16 | struct C { | ||||
17 | A a; | ||||
18 | |||||
19 | ~C(); | ||||
20 | }; | ||||
21 | |||||
Douglas Gregor | 4513272 | 2009-10-01 20:44:19 +0000 | [diff] [blame] | 22 | C::~C() { } |
23 | |||||
24 | // PR5084 | ||||
25 | template<typename T> | ||||
26 | class A1 { | ||||
27 | ~A1(); | ||||
28 | }; | ||||
29 | |||||
30 | template<> A1<char>::~A1(); | ||||
Anders Carlsson | 9f853df | 2009-11-17 04:44:12 +0000 | [diff] [blame] | 31 | |
32 | // PR5529 | ||||
33 | namespace PR5529 { | ||||
34 | struct A { | ||||
35 | ~A(); | ||||
36 | }; | ||||
37 | |||||
38 | A::~A() { } | ||||
39 | struct B : A { | ||||
40 | virtual ~B(); | ||||
41 | }; | ||||
42 | |||||
43 | B::~B() {} | ||||
44 | } |