| // RUN: %clang_cc1 -fsyntax-only -fdebugger-support -verify -Wno-objc-root-class %s |
| // RUN: %clang_cc1 -x objective-c++ -fdebugger-support -fsyntax-only -verify -Wno-objc-root-class %s |
| // expected-no-diagnostics |
| // rdar://10997647 |
| |
| @interface I |
| { |
| @private |
| int ivar; |
| } |
| @end |
| |
| @implementation I |
| - (int) meth { |
| return self->ivar; |
| } |
| int foo1(I* p) { |
| return p->ivar; |
| } |
| @end |
| |
| int foo(I* p) { |
| return p->ivar; |
| } |
| |
| @interface B |
| @end |
| |
| @implementation B |
| - (int) meth : (I*) arg { |
| return arg->ivar; |
| } |
| @end |
| |
| |
| @interface I1 { |
| int protected_ivar; |
| } |
| @property int PROP_INMAIN; |
| @end |
| |
| @interface I1() { |
| int private_ivar; |
| } |
| @property int PROP_INCLASSEXT; |
| @end |
| |
| @implementation I1 |
| @synthesize PROP_INMAIN, PROP_INCLASSEXT; |
| |
| - (int) Meth { |
| PROP_INMAIN = 1; |
| PROP_INCLASSEXT = 2; |
| protected_ivar = 1; // OK |
| return private_ivar; // OK |
| } |
| @end |
| |
| |
| @interface DER : I1 |
| @end |
| |
| @implementation DER |
| - (int) Meth { |
| protected_ivar = 1; // OK |
| PROP_INMAIN = 1; |
| PROP_INCLASSEXT = 2; |
| return private_ivar; |
| } |
| @end |
| |