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

