1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 2*67e74705SXin Li// rdar://7766184 3*67e74705SXin Li 4*67e74705SXin Li@interface Foo @end 5*67e74705SXin Li 6*67e74705SXin Li@interface Foo () 7*67e74705SXin Li @property (readonly) int bar; 8*67e74705SXin Li@end 9*67e74705SXin Li 10*67e74705SXin Livoid FUNC () { 11*67e74705SXin Li Foo *foo; 12*67e74705SXin Li foo.bar = 0; // expected-error {{assignment to readonly property}} 13*67e74705SXin Li} 14*67e74705SXin Li 15*67e74705SXin Li// rdar://8747333 16*67e74705SXin Li@class NSObject; 17*67e74705SXin Li 18*67e74705SXin Li@interface rdar8747333 { 19*67e74705SXin Li@private 20*67e74705SXin Li NSObject *_bar; 21*67e74705SXin Li NSObject *_baz; 22*67e74705SXin Li NSObject *_bam; 23*67e74705SXin Li} 24*67e74705SXin Li- (NSObject *)baz; 25*67e74705SXin Li@end 26*67e74705SXin Li 27*67e74705SXin Li@interface rdar8747333 () 28*67e74705SXin Li- (NSObject *)bar; 29*67e74705SXin Li@end 30*67e74705SXin Li 31*67e74705SXin Li@interface rdar8747333 () 32*67e74705SXin Li@property (readwrite, assign) NSObject *bar; 33*67e74705SXin Li@property (readwrite, assign) NSObject *baz; 34*67e74705SXin Li@property (readwrite, assign) NSObject *bam; 35*67e74705SXin Li@property (readwrite, assign) NSObject *warn; 36*67e74705SXin Li@end 37*67e74705SXin Li 38*67e74705SXin Li@interface rdar8747333 () 39*67e74705SXin Li- (NSObject *)bam; 40*67e74705SXin Li- (NSObject *)warn; 41*67e74705SXin Li- (void)setWarn : (NSObject *)val; 42*67e74705SXin Li@end 43*67e74705SXin Li 44*67e74705SXin Li@implementation rdar8747333 45*67e74705SXin Li@synthesize bar = _bar; 46*67e74705SXin Li@synthesize baz = _baz; 47*67e74705SXin Li@synthesize bam = _bam; 48*67e74705SXin Li@dynamic warn; 49*67e74705SXin Li@end 50*67e74705SXin Li 51