Home | History | Annotate | Download | only in SemaObjC
      1 // RUN: %clang_cc1 -fsyntax-only -fdebugger-support -verify -Wno-objc-root-class %s
      2 // RUN: %clang_cc1 -x objective-c++ -fdebugger-support -fsyntax-only -verify -Wno-objc-root-class %s
      3 // expected-no-diagnostics
      4 // rdar://10997647
      5 
      6 @interface I
      7 {
      8 @private
      9 int ivar;
     10 }
     11 @end
     12 
     13 @implementation I
     14 - (int) meth {
     15   return self->ivar;
     16 }
     17 int foo1(I* p) {
     18   return p->ivar;
     19 }
     20 @end
     21 
     22 int foo(I* p) {
     23   return p->ivar;
     24 }
     25 
     26 @interface B 
     27 @end
     28 
     29 @implementation B 
     30 - (int) meth : (I*) arg {
     31   return arg->ivar;
     32 }
     33 @end
     34 
     35 
     36 @interface I1 {
     37  int protected_ivar;
     38 }
     39 @property int PROP_INMAIN;
     40 @end
     41 
     42 @interface I1() {
     43  int private_ivar;
     44 }
     45 @property int PROP_INCLASSEXT;
     46 @end
     47 
     48 @implementation I1
     49 @synthesize PROP_INMAIN, PROP_INCLASSEXT;
     50 
     51 - (int) Meth {
     52    PROP_INMAIN = 1;
     53    PROP_INCLASSEXT = 2;
     54    protected_ivar = 1;  // OK
     55    return private_ivar; // OK
     56 }
     57 @end
     58 
     59 
     60 @interface DER : I1
     61 @end
     62 
     63 @implementation DER
     64 - (int) Meth {
     65    protected_ivar = 1;  // OK
     66    PROP_INMAIN = 1;
     67    PROP_INCLASSEXT = 2; 
     68    return private_ivar;
     69 }
     70 @end
     71 
     72