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 - (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 46 int main () { 47 TNSAutoRef<TBar*> bar([[TBar alloc] init]); 48 [bar foo]; 49 return 0; 50 } 51