1 // RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -fsyntax-only -verify -fobjc-nonfragile-abi %s 2 // rdar://9070460 3 4 class TCPPObject 5 { 6 public: 7 TCPPObject(const TCPPObject& inObj); 8 TCPPObject(); 9 ~TCPPObject(); 10 11 TCPPObject& operator=(const TCPPObject& inObj)const ; 12 13 void* Data(); 14 15 private: 16 void* fData; 17 }; 18 19 20 typedef const TCPPObject& CREF_TCPPObject; 21 22 @interface TNSObject 23 @property (assign, readwrite, nonatomic) CREF_TCPPObject cppObjectNonAtomic; 24 @property (assign, readwrite) CREF_TCPPObject cppObjectAtomic; 25 @property (assign, readwrite, nonatomic) const TCPPObject& cppObjectDynamic; 26 @end 27 28 29 @implementation TNSObject 30 31 @synthesize cppObjectNonAtomic; 32 @synthesize cppObjectAtomic; 33 @dynamic cppObjectDynamic; 34 35 - (const TCPPObject&) cppObjectNonAtomic 36 { 37 return cppObjectNonAtomic; 38 } 39 40 - (void) setCppObjectNonAtomic: (const TCPPObject&)cppObject 41 { 42 cppObjectNonAtomic = cppObject; 43 } 44 @end 45