1 // RUN: %clang_cc1 -verify %s 2 3 @interface I 4 { 5 id d1; 6 } 7 @property (readwrite, copy) id d1; 8 @property (readwrite, copy) id d2; 9 @end 10 11 @interface NOW : I 12 @property (readonly) id d1; // expected-warning {{attribute 'readonly' of property 'd1' restricts attribute 'readwrite' of property inherited from 'I'}} expected-warning {{'copy' attribute on property 'd1' does not match the property inherited from 'I'}} 13 @property (readwrite, copy) I* d2; 14 @end 15 16 // rdar://13156292 17 typedef signed char BOOL; 18 19 @protocol EKProtocolCalendar 20 @property (nonatomic, readonly) BOOL allowReminders; 21 @property (atomic, readonly) BOOL allowNonatomicProperty; // expected-note {{property declared here}} 22 @end 23 24 @protocol EKProtocolMutableCalendar <EKProtocolCalendar> 25 @end 26 27 @interface EKCalendar 28 @end 29 30 @interface EKCalendar () <EKProtocolMutableCalendar> 31 @property (nonatomic, assign) BOOL allowReminders; 32 @property (nonatomic, assign) BOOL allowNonatomicProperty; // expected-warning {{'atomic' attribute on property 'allowNonatomicProperty' does not match the property inherited from 'EKProtocolCalendar'}} 33 @end 34