// 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
