1// RUN: cp %s %t 2// RUN: %clang_cc1 -x objective-c -fixit %t 3// RUN: %clang_cc1 -x objective-c -Werror %t 4// rdar://13503456 5 6void object_setClass(id, id); 7Class object_getClass(id); 8 9id rhs(); 10 11Class pr6302(id x123) { 12 x123->isa = 0; 13 x123->isa = rhs(); 14 x123->isa = (id)(x123->isa); 15 x123->isa = (id)x123->isa; 16 x123->isa = (x123->isa); 17 x123->isa = (id)(x123->isa); 18 return x123->isa; 19} 20 21 22@interface BaseClass { 23@public 24 Class isa; // expected-note 3 {{instance variable is declared here}} 25} 26@end 27 28@interface OtherClass { 29@public 30 id firstIvar; 31 Class isa; // note, not first ivar; 32} 33@end 34 35@interface Subclass : BaseClass @end 36 37@interface SiblingClass : BaseClass @end 38 39@interface Root @end 40 41@interface hasIsa : Root { 42@public 43 Class isa; // note, isa is not in root class 44} 45@end 46 47@implementation Subclass 48-(void)method { 49 hasIsa *u; 50 id v; 51 BaseClass *w; 52 Subclass *x; 53 SiblingClass *y; 54 OtherClass *z; 55 (void)v->isa; 56 (void)w->isa; 57 (void)x->isa; 58 (void)y->isa; 59 (void)z->isa; 60 (void)u->isa; 61 y->isa = 0; 62 y->isa = w->isa; 63 x->isa = rhs(); 64} 65@end 66 67