blob: e449097b31d21fd9f24ba5d46529a183d15a1f89 [file] [log] [blame]
/* APPLE LOCAL file ObjC GC */
/* Do _not_ generate write barriers for global function pointers,
even ones returning 'id'. */
/* { dg-do compile { target powerpc*-*-darwin* i?86*-*-darwin* } } */
/* { dg-options "-fnext-runtime -fobjc-gc -Wno-non-lvalue-assign -Wassign-intercept" } */
/* { dg-require-effective-target objc_gc } */
/* APPLE LOCAL radar 4894756 */
#include "../objc/execute/Object2.h"
@interface Base: Object {
int a;
}
@end
static IMP globalIMP = 0;
void foo(void) {
/* APPLE LOCAL radar 4923914 */
# if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 || __OBJC2__)
Class ObjectClass = objc_getClass ("Object");
IMP myIMP = method_getImplementation(class_getInstanceMethod (ObjectClass, @selector(new)));
#else
IMP myIMP = [Object methodFor:@selector(new)];
#endif
globalIMP = myIMP;
}
void bar(void) {
Object *obj = 0;
obj = [Object new];
(Base *)obj = [Base new];
}
void baz(id *b1) {
id a1[4];
int i;
for(i = 0; i < 4; ++i) {
a1[i] = b1[i];
}
}