diff options
Diffstat (limited to 'test/SemaObjCXX/property-reference.mm')
-rw-r--r-- | test/SemaObjCXX/property-reference.mm | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/SemaObjCXX/property-reference.mm b/test/SemaObjCXX/property-reference.mm new file mode 100644 index 0000000..5dc8061 --- /dev/null +++ b/test/SemaObjCXX/property-reference.mm @@ -0,0 +1,44 @@ +// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -fsyntax-only -verify -fobjc-nonfragile-abi %s +// rdar://9070460 + +class TCPPObject +{ +public: + TCPPObject(const TCPPObject& inObj); + TCPPObject(); + ~TCPPObject(); + + TCPPObject& operator=(const TCPPObject& inObj)const ; + + void* Data(); + +private: + void* fData; +}; + + +typedef const TCPPObject& CREF_TCPPObject; + +@interface TNSObject +@property (assign, readwrite, nonatomic) CREF_TCPPObject cppObjectNonAtomic; +@property (assign, readwrite) CREF_TCPPObject cppObjectAtomic; +@property (assign, readwrite, nonatomic) const TCPPObject& cppObjectDynamic; +@end + + +@implementation TNSObject + +@synthesize cppObjectNonAtomic; +@synthesize cppObjectAtomic; +@dynamic cppObjectDynamic; + +- (const TCPPObject&) cppObjectNonAtomic +{ + return cppObjectNonAtomic; +} + +- (void) setCppObjectNonAtomic: (const TCPPObject&)cppObject +{ + cppObjectNonAtomic = cppObject; +} +@end |