brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · ad4b3e4 Raw
66 lines · plain
1// RUN: cp %s %t2// RUN: %clang_cc1 -x objective-c -fixit %t3// RUN: %clang_cc1 -x objective-c -Werror %t4 5void object_setClass(id, id);6Class object_getClass(id);7 8id rhs(void);9 10Class 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;18}19 20 21@interface BaseClass {22@public23    Class isa; // expected-note 3 {{instance variable is declared here}}24}25@end26 27@interface OtherClass {28@public29    id    firstIvar;30    Class isa; // note, not first ivar;31}32@end33 34@interface Subclass : BaseClass @end35 36@interface SiblingClass : BaseClass @end37 38@interface Root @end39 40@interface hasIsa : Root {41@public42  Class isa; // note, isa is not in root class43}44@end45 46@implementation Subclass47-(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();63}64@end65 66