|  | // 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 | 
|  |  | 
|  | // rdar://7823675 | 
|  | int f0(I *a) { return a->IP; } // expected-error {{instance variable 'IP' is private}} | 
|  |  | 
|  | // rdar://8769582 | 
|  |  | 
|  | @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 | 
|  | // rdar://9605088 | 
|  | @synthesize testObjectWeakProperty; // expected-error {{@synthesize of 'weak' property is only allowed in ARC or GC mode}} | 
|  | @end |