Fariborz Jahanian | cac49a8 | 2010-05-12 23:29:11 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | // rdar: // 7963410 | ||||
3 | |||||
4 | template<class T> | ||||
5 | class TNSAutoRef | ||||
6 | { | ||||
7 | public: | ||||
8 | TNSAutoRef(T t) | ||||
9 | : fRef(t) | ||||
10 | { } | ||||
11 | |||||
12 | ~TNSAutoRef() | ||||
13 | { } | ||||
14 | |||||
15 | operator T() const | ||||
16 | { return fRef; } | ||||
17 | |||||
18 | T Get() const | ||||
19 | { return fRef; } | ||||
20 | |||||
21 | private: | ||||
22 | T fRef; | ||||
23 | }; | ||||
24 | |||||
25 | @interface NSObject | ||||
26 | - (id) alloc; | ||||
27 | - (id)init; | ||||
28 | @end | ||||
29 | |||||
30 | @interface TFoo : NSObject | ||||
31 | |||||
32 | - (void) foo; | ||||
33 | @end | ||||
34 | |||||
35 | @implementation TFoo | ||||
36 | |||||
37 | - (void) foo | ||||
38 | {} | ||||
39 | @end | ||||
40 | |||||
41 | @interface TBar : NSObject | ||||
42 | @end | ||||
43 | |||||
44 | @implementation TBar | ||||
45 | @end | ||||
46 | |||||
47 | int main () { | ||||
48 | TNSAutoRef<TBar*> bar([[TBar alloc] init]); | ||||
49 | [bar foo]; | ||||
50 | return 0; | ||||
51 | } |