1*0a6a1f1dSLionel Sambuc// RUN: %clang_cc1 -fsyntax-only -Wno-objc-root-class -verify %s 2f4a2713aSLionel Sambuc 3f4a2713aSLionel Sambuc@protocol P0 4*0a6a1f1dSLionel Sambuc@property(readonly,assign) id X; 5f4a2713aSLionel Sambuc@end 6f4a2713aSLionel Sambuc 7f4a2713aSLionel Sambuc@protocol P1 8*0a6a1f1dSLionel Sambuc@property(readonly,retain) id X; 9f4a2713aSLionel Sambuc@end 10f4a2713aSLionel Sambuc 11f4a2713aSLionel Sambuc@protocol P2 12*0a6a1f1dSLionel Sambuc@property(readonly,copy) id X; 13f4a2713aSLionel Sambuc@end 14f4a2713aSLionel Sambuc 15f4a2713aSLionel Sambuc@protocol P3 16f4a2713aSLionel Sambuc@property(readonly,readwrite) id X; // expected-error {{property attributes 'readonly' and 'readwrite' are mutually exclusive}} 17f4a2713aSLionel Sambuc@end 18f4a2713aSLionel Sambuc 19f4a2713aSLionel Sambuc@protocol P4 20f4a2713aSLionel Sambuc@property(assign,copy) id X; // expected-error {{property attributes 'assign' and 'copy' are mutually exclusive}} 21f4a2713aSLionel Sambuc@end 22f4a2713aSLionel Sambuc 23f4a2713aSLionel Sambuc@protocol P5 24f4a2713aSLionel Sambuc@property(assign,retain) id X; // expected-error {{property attributes 'assign' and 'retain' are mutually exclusive}} 25f4a2713aSLionel Sambuc@end 26f4a2713aSLionel Sambuc 27f4a2713aSLionel Sambuc@protocol P6 28f4a2713aSLionel Sambuc@property(copy,retain) id X; // expected-error {{property attributes 'copy' and 'retain' are mutually exclusive}} 29f4a2713aSLionel Sambuc@end 30f4a2713aSLionel Sambuc 31f4a2713aSLionel Sambuc 32f4a2713aSLionel Sambuc// rdar://11656982 33f4a2713aSLionel Sambuc@interface I0 <P0> @end 34f4a2713aSLionel Sambuc@implementation I0 35f4a2713aSLionel Sambuc@synthesize X; 36f4a2713aSLionel Sambuc@end 37f4a2713aSLionel Sambuc 38f4a2713aSLionel Sambuc@interface I1 <P1> @end 39f4a2713aSLionel Sambuc@implementation I1 40f4a2713aSLionel Sambuc@synthesize X; 41f4a2713aSLionel Sambuc@end 42f4a2713aSLionel Sambuc 43f4a2713aSLionel Sambuc@interface I2 <P2> @end 44f4a2713aSLionel Sambuc@implementation I2 45f4a2713aSLionel Sambuc@synthesize X; 46f4a2713aSLionel Sambuc@end 47f4a2713aSLionel Sambuc 48f4a2713aSLionel Sambuc@interface I3 <P3> @end 49f4a2713aSLionel Sambuc@implementation I3 50f4a2713aSLionel Sambuc@synthesize X; 51f4a2713aSLionel Sambuc@end 52f4a2713aSLionel Sambuc 53f4a2713aSLionel Sambuc@interface I4 <P4> @end 54f4a2713aSLionel Sambuc@implementation I4 55f4a2713aSLionel Sambuc@synthesize X; 56f4a2713aSLionel Sambuc@end 57f4a2713aSLionel Sambuc 58f4a2713aSLionel Sambuc@interface I5 <P5> @end 59f4a2713aSLionel Sambuc@implementation I5 60f4a2713aSLionel Sambuc@synthesize X; 61f4a2713aSLionel Sambuc@end 62f4a2713aSLionel Sambuc 63f4a2713aSLionel Sambuc@interface I6 <P6> @end 64f4a2713aSLionel Sambuc@implementation I6 65f4a2713aSLionel Sambuc@synthesize X; 66f4a2713aSLionel Sambuc@end 67f4a2713aSLionel Sambuc 68