blob: 41bb4ff37a0af187907a1561bb5cd220f317a262 [file] [log] [blame]
Fariborz Jahanian79d3f042010-05-12 23:29:11 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Andy Gibbs8e8fb3b2012-10-19 12:44:48 +00002// expected-no-diagnostics
Fariborz Jahanian79d3f042010-05-12 23:29:11 +00003// rdar: // 7963410
4
5template<class T>
6class TNSAutoRef
7{
8public:
9 TNSAutoRef(T t)
10 : fRef(t)
11 { }
12
13 ~TNSAutoRef()
14 { }
15
16 operator T() const
17 { return fRef; }
18
19 T Get() const
20 { return fRef; }
21
22private:
23 T fRef;
24};
25
26@interface NSObject
27- (id) alloc;
28- (id)init;
29@end
30
31@interface TFoo : NSObject
Fariborz Jahanian79d3f042010-05-12 23:29:11 +000032- (void) foo;
33@end
34
35@implementation TFoo
Fariborz Jahanian3ba60612010-05-13 17:19:25 +000036- (void) foo {}
Fariborz Jahanian79d3f042010-05-12 23:29:11 +000037@end
38
39@interface TBar : NSObject
Fariborz Jahanian3ba60612010-05-13 17:19:25 +000040- (void) foo;
Fariborz Jahanian79d3f042010-05-12 23:29:11 +000041@end
42
43@implementation TBar
Fariborz Jahanian3ba60612010-05-13 17:19:25 +000044- (void) foo {}
Fariborz Jahanian79d3f042010-05-12 23:29:11 +000045@end
46
47int main () {
48 TNSAutoRef<TBar*> bar([[TBar alloc] init]);
49 [bar foo];
50 return 0;
51}