| // 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 | 
 |  |