blob: 3f22c1838ac09bf0912a8c0d3a9210d87a82b7d7 [file] [log] [blame]
Fariborz Jahanian06bb7f72013-03-28 19:50:55 +00001// 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}
Fariborz Jahanianf12ff4df2013-04-02 18:57:54 +000020
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