Home | History | Annotate | Download | only in SemaObjC
      1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
      2 
      3 @interface Super @end
      4 
      5 @interface INTFSTANDALONE : Super
      6 {
      7   id IVAR;	// expected-note {{previous definition is here}}
      8 }
      9 
     10 @end
     11 
     12 @implementation INTFSTANDALONE : Super // expected-warning {{class implementation may not have super class}}
     13 {
     14   id PRIV_IVAR;
     15 @protected
     16   id PRTCTD;	
     17 @private
     18   id IVAR3;
     19   int IVAR;	// expected-error {{instance variable is already declared}}
     20 @public
     21   id IVAR4;
     22 }
     23 @end
     24 
     25 @interface Base @end
     26 
     27 @implementation Base { 
     28     int ivar1; 
     29 @public
     30     int ivar2; 
     31 } 
     32 @end
     33 
     34 id fn1(INTFSTANDALONE *b) { return b->PRIV_IVAR; } // expected-error {{instance variable 'PRIV_IVAR' is private}}
     35 
     36 id fn2(INTFSTANDALONE *b) { return b->PRTCTD; }  // expected-error {{instance variable 'PRTCTD' is protected}}
     37 
     38 id fn4(INTFSTANDALONE *b) { return b->IVAR4; }
     39 
     40