Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / FixIt / auto-isa-fixit.m
blobad4b3e47f45c59da679e6894a3a1ffb41e1da08f
1 // RUN: cp %s %t
2 // RUN: %clang_cc1 -x objective-c -fixit %t
3 // RUN: %clang_cc1 -x objective-c -Werror %t
5 void object_setClass(id, id);
6 Class object_getClass(id);
8 id rhs(void);
10 Class pr6302(id x123) {
11   x123->isa  = 0;
12   x123->isa = rhs();
13   x123->isa = (id)(x123->isa);
14   x123->isa = (id)x123->isa;
15   x123->isa = (x123->isa);
16   x123->isa = (id)(x123->isa);
17   return x123->isa;
21 @interface BaseClass {
22 @public
23     Class isa; // expected-note 3 {{instance variable is declared here}}
25 @end
27 @interface OtherClass {
28 @public
29     id    firstIvar;
30     Class isa; // note, not first ivar;
32 @end
34 @interface Subclass : BaseClass @end
36 @interface SiblingClass : BaseClass @end
38 @interface Root @end
40 @interface hasIsa : Root {
41 @public
42   Class isa; // note, isa is not in root class
44 @end
46 @implementation Subclass
47 -(void)method {
48     hasIsa *u;
49     id v;
50     BaseClass *w;
51     Subclass *x;
52     SiblingClass *y;
53     OtherClass *z;
54     (void)v->isa; 
55     (void)w->isa;
56     (void)x->isa;
57     (void)y->isa;
58     (void)z->isa;
59     (void)u->isa;
60     y->isa = 0;
61     y->isa = w->isa;
62     x->isa = rhs();
64 @end