xref: /minix3/external/bsd/llvm/dist/clang/test/SemaObjC/property-3.m (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1*f4a2713aSLionel Sambuc// RUN: %clang_cc1 -verify %s
2*f4a2713aSLionel Sambuc
3*f4a2713aSLionel Sambuc@interface I
4*f4a2713aSLionel Sambuc{
5*f4a2713aSLionel Sambuc	id d1;
6*f4a2713aSLionel Sambuc}
7*f4a2713aSLionel Sambuc@property (readwrite, copy) id d1;
8*f4a2713aSLionel Sambuc@property (readwrite, copy) id d2;
9*f4a2713aSLionel Sambuc@end
10*f4a2713aSLionel Sambuc
11*f4a2713aSLionel Sambuc@interface NOW : I
12*f4a2713aSLionel Sambuc@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*f4a2713aSLionel Sambuc@property (readwrite, copy) I* d2;
14*f4a2713aSLionel Sambuc@end
15*f4a2713aSLionel Sambuc
16*f4a2713aSLionel Sambuc// rdar://13156292
17*f4a2713aSLionel Sambuctypedef signed char BOOL;
18*f4a2713aSLionel Sambuc
19*f4a2713aSLionel Sambuc@protocol EKProtocolCalendar
20*f4a2713aSLionel Sambuc@property (nonatomic, readonly) BOOL allowReminders;
21*f4a2713aSLionel Sambuc@property (atomic, readonly) BOOL allowNonatomicProperty; // expected-note {{property declared here}}
22*f4a2713aSLionel Sambuc@end
23*f4a2713aSLionel Sambuc
24*f4a2713aSLionel Sambuc@protocol EKProtocolMutableCalendar <EKProtocolCalendar>
25*f4a2713aSLionel Sambuc@end
26*f4a2713aSLionel Sambuc
27*f4a2713aSLionel Sambuc@interface EKCalendar
28*f4a2713aSLionel Sambuc@end
29*f4a2713aSLionel Sambuc
30*f4a2713aSLionel Sambuc@interface EKCalendar ()  <EKProtocolMutableCalendar>
31*f4a2713aSLionel Sambuc@property (nonatomic, assign) BOOL allowReminders;
32*f4a2713aSLionel Sambuc@property (nonatomic, assign) BOOL allowNonatomicProperty; // expected-warning {{'atomic' attribute on property 'allowNonatomicProperty' does not match the property inherited from 'EKProtocolCalendar'}}
33*f4a2713aSLionel Sambuc@end
34