xref: /llvm-project/clang/test/SemaObjCXX/conversion-to-objc-pointer.mm (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: %clang_cc1 -fsyntax-only -verify %s
2// expected-no-diagnostics
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
31- (void) foo;
32@end
33
34@implementation TFoo
35- (void) foo {}
36@end
37
38@interface TBar : NSObject
39- (void) foo;
40@end
41
42@implementation TBar
43- (void) foo {}
44@end
45
46int main () {
47	TNSAutoRef<TBar*> bar([[TBar alloc] init]);
48	[bar foo];
49	return 0;
50}
51