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 // rdar://10997647
      4 
      5 @interface I
      6 {
      7 @private
      8 int ivar;
      9 }
     10 @end
     11 
     12 @implementation I
     13 - (int) meth {
     14   return self->ivar;
     15 }
     16 int foo1(I* p) {
     17   return p->ivar;
     18 }
     19 @end
     20 
     21 int foo(I* p) {
     22   return p->ivar;
     23 }
     24 
     25 @interface B 
     26 @end
     27 
     28 @implementation B 
     29 - (int) meth : (I*) arg {
     30   return arg->ivar;
     31 }
     32 @end
     33 
     34 
     35 @interface I1 {
     36  int protected_ivar;
     37 }
     38 @property int PROP_INMAIN;
     39 @end
     40 
     41 @interface I1() {
     42  int private_ivar;
     43 }
     44 @property int PROP_INCLASSEXT;
     45 @end
     46 
     47 @implementation I1
     48 @synthesize PROP_INMAIN, PROP_INCLASSEXT;
     49 
     50 - (int) Meth {
     51    PROP_INMAIN = 1;
     52    PROP_INCLASSEXT = 2;
     53    protected_ivar = 1;  // OK
     54    return private_ivar; // OK
     55 }
     56 @end
     57 
     58 
     59 @interface DER : I1
     60 @end
     61 
     62 @implementation DER
     63 - (int) Meth {
     64    protected_ivar = 1;  // OK
     65    PROP_INMAIN = 1;
     66    PROP_INCLASSEXT = 2; 
     67    return private_ivar;
     68 }
     69 @end
     70 
     71