Daniel Dunbar | 4fcfde4 | 2009-11-08 01:45:36 +0000 | [diff] [blame^] | 1 | // RUN: clang-cc %s -emit-llvm -o %t |
Anders Carlsson | 60e282c | 2009-08-16 21:13:42 +0000 | [diff] [blame] | 2 | |
3 | void t1(int *a) { | ||||
4 | delete a; | ||||
5 | } | ||||
6 | |||||
7 | struct S { | ||||
8 | int a; | ||||
9 | }; | ||||
10 | |||||
11 | // POD types. | ||||
12 | void t3(S *s) { | ||||
13 | delete s; | ||||
14 | } | ||||
15 | |||||
16 | // Non-POD | ||||
17 | struct T { | ||||
18 | ~T(); | ||||
19 | int a; | ||||
20 | }; | ||||
21 | |||||
22 | void t4(T *t) { | ||||
23 | // RUN: grep "call void @_ZN1TD1Ev" %t | count 1 | ||||
24 | delete t; | ||||
25 | } | ||||
Douglas Gregor | d69dd78 | 2009-10-01 05:49:51 +0000 | [diff] [blame] | 26 | |
27 | // PR5102 | ||||
28 | template <typename T> | ||||
29 | class A { | ||||
30 | operator T *() const; | ||||
31 | }; | ||||
32 | |||||
33 | void f() { | ||||
34 | A<char*> a; | ||||
35 | |||||
36 | delete a; | ||||
37 | } |