blob: 235aaac8d09cdb3277b23613fd9574e686447ff6 [file] [log] [blame]
Fariborz Jahanian79d3f042010-05-12 23:29:11 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
2// rdar: // 7963410
3
4template<class T>
5class TNSAutoRef
6{
7public:
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
21private:
22 T fRef;
23};
24
25@interface NSObject
26- (id) alloc;
27- (id)init;
28@end
29
30@interface TFoo : NSObject
Fariborz Jahanian79d3f042010-05-12 23:29:11 +000031- (void) foo;
32@end
33
34@implementation TFoo
Fariborz Jahanian3ba60612010-05-13 17:19:25 +000035- (void) foo {}
Fariborz Jahanian79d3f042010-05-12 23:29:11 +000036@end
37
38@interface TBar : NSObject
Fariborz Jahanian3ba60612010-05-13 17:19:25 +000039- (void) foo;
Fariborz Jahanian79d3f042010-05-12 23:29:11 +000040@end
41
42@implementation TBar
Fariborz Jahanian3ba60612010-05-13 17:19:25 +000043- (void) foo {}
Fariborz Jahanian79d3f042010-05-12 23:29:11 +000044@end
45
46int main () {
47 TNSAutoRef<TBar*> bar([[TBar alloc] init]);
48 [bar foo];
49 return 0;
50}