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