// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
@interface I
{
}
@property int IP;
@end

@implementation I
@synthesize IP;
- (int) Meth {
   return IP;
}
@end

int f0(I *a) { return a->IP; } // expected-error {{instance variable 'IP' is private}}

@interface I1 {
 int protected_ivar;
}
@property int PROP_INMAIN;
@end

@interface I1() {
 int private_ivar;
}
@property int PROP_INCLASSEXT;
@end

@implementation I1
- (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; // expected-error {{instance variable '_PROP_INMAIN' is private}}
   _PROP_INCLASSEXT = 2; // expected-error {{instance variable '_PROP_INCLASSEXT' is private}}
   return private_ivar; // expected-error {{instance variable 'private_ivar' is private}}
}
@end

@interface A
@property (weak) id testObjectWeakProperty; // expected-note {{declared here}}
@end

@implementation A
@synthesize testObjectWeakProperty; // expected-error {{cannot synthesize weak property because the current deployment target does not support weak references}}
@end
