forked from OSchip/llvm-project
37 lines
757 B
Objective-C
37 lines
757 B
Objective-C
// RUN: %clang_cc1 -emit-llvm -o %t %s
|
|
|
|
typedef struct objc_class *Class;
|
|
|
|
typedef struct objc_object {
|
|
Class isa;
|
|
} *id;
|
|
|
|
@interface I
|
|
+ (Class) class;
|
|
- (void)meth : (id)object : (id)src_object;
|
|
+ (unsigned char) isSubclassOfClass:(Class)aClass ;
|
|
@end
|
|
|
|
@implementation I
|
|
+ (Class) class {return 0;}
|
|
+ (unsigned char) isSubclassOfClass:(Class)aClass {return 0;}
|
|
- (void)meth : (id)object : (id)src_object {
|
|
[object->isa isSubclassOfClass:[I class]];
|
|
|
|
[(*object).isa isSubclassOfClass:[I class]];
|
|
|
|
object->isa = src_object->isa;
|
|
(*src_object).isa = (*object).isa;
|
|
}
|
|
@end
|
|
|
|
|
|
// rdar 7470820
|
|
static Class MyClass;
|
|
|
|
Class Test(const void *inObject1) {
|
|
if(((id)inObject1)->isa == MyClass)
|
|
return ((id)inObject1)->isa;
|
|
return (id)0;
|
|
}
|