|  | // RUN: cp %s %t | 
|  | // RUN: %clang_cc1 -x objective-c -fixit %t | 
|  | // RUN: %clang_cc1 -x objective-c -Werror %t | 
|  | // rdar://13503456 | 
|  |  | 
|  | void object_setClass(id, id); | 
|  | Class object_getClass(id); | 
|  |  | 
|  | id rhs(); | 
|  |  | 
|  | Class pr6302(id x123) { | 
|  | x123->isa  = 0; | 
|  | x123->isa = rhs(); | 
|  | x123->isa = (id)(x123->isa); | 
|  | x123->isa = (id)x123->isa; | 
|  | x123->isa = (x123->isa); | 
|  | x123->isa = (id)(x123->isa); | 
|  | return x123->isa; | 
|  | } | 
|  |  | 
|  |  | 
|  | @interface BaseClass { | 
|  | @public | 
|  | Class isa; // expected-note 3 {{instance variable is declared here}} | 
|  | } | 
|  | @end | 
|  |  | 
|  | @interface OtherClass { | 
|  | @public | 
|  | id    firstIvar; | 
|  | Class isa; // note, not first ivar; | 
|  | } | 
|  | @end | 
|  |  | 
|  | @interface Subclass : BaseClass @end | 
|  |  | 
|  | @interface SiblingClass : BaseClass @end | 
|  |  | 
|  | @interface Root @end | 
|  |  | 
|  | @interface hasIsa : Root { | 
|  | @public | 
|  | Class isa; // note, isa is not in root class | 
|  | } | 
|  | @end | 
|  |  | 
|  | @implementation Subclass | 
|  | -(void)method { | 
|  | hasIsa *u; | 
|  | id v; | 
|  | BaseClass *w; | 
|  | Subclass *x; | 
|  | SiblingClass *y; | 
|  | OtherClass *z; | 
|  | (void)v->isa; | 
|  | (void)w->isa; | 
|  | (void)x->isa; | 
|  | (void)y->isa; | 
|  | (void)z->isa; | 
|  | (void)u->isa; | 
|  | y->isa = 0; | 
|  | y->isa = w->isa; | 
|  | x->isa = rhs(); | 
|  | } | 
|  | @end | 
|  |  |