1 // RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s 2 3 @interface A 4 @end 5 6 // Readonly, atomic public redeclaration of property in subclass. 7 @interface AtomicInheritanceSuper 8 @property (readonly) A *property; 9 @end 10 11 @interface AtomicInheritanceSuper() 12 @property (nonatomic,readwrite,retain) A *property; 13 @end 14 15 @interface AtomicInheritanceSub : AtomicInheritanceSuper 16 @property (readonly) A *property; 17 @end 18 19 // Readonly, atomic public redeclaration of property in subclass. 20 @interface AtomicInheritanceSuper2 21 @property (readonly) A *property; 22 @end 23 24 @interface AtomicInheritanceSub2 : AtomicInheritanceSuper2 25 @property (nonatomic, readwrite, retain) A *property; 26 @end 27 28 @interface ReadonlyAtomic 29 @property (readonly, nonatomic) A *property; 30 @end 31 32 @interface ReadonlyAtomic () 33 @property (readwrite) A *property; 34 @end 35 36 // Readonly, atomic public redeclaration of property in subclass. 37 @interface AtomicInheritanceSuper3 38 @property (readonly,atomic) A *property; // expected-note{{property declared here}} 39 @end 40 41 @interface AtomicInheritanceSuper3() 42 @property (nonatomic,readwrite,retain) A *property; // expected-warning{{'atomic' attribute on property 'property' does not match the property inherited from 'AtomicInheritanceSuper3'}} 43 @end 44 45 @interface AtomicInheritanceSub3 : AtomicInheritanceSuper3 46 @property (readonly) A *property; 47 @end 48 49 // Readonly, atomic public redeclaration of property in subclass. 50 @interface AtomicInheritanceSuper4 51 @property (readonly, atomic) A *property; // expected-note{{property declared here}} 52 @end 53 54 @interface AtomicInheritanceSub4 : AtomicInheritanceSuper4 55 @property (nonatomic, readwrite, retain) A *property; // expected-warning{{atomic' attribute on property 'property' does not match the property inherited from 'AtomicInheritanceSuper4'}} 56 @end 57 58