Home | History | Annotate | Download | only in SemaObjC
      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