| /* APPLE LOCAL file radar 4995066 */ |
| /* Must compile with -m64 and -m32. */ |
| /* { dg-do compile { target powerpc*-*-darwin* i?86*-*-darwin* } } */ |
| /* { dg-options "-fnext-runtime -Wno-deprecated-objc-isa-usage -fobjc-gc" } */ |
| /* { dg-require-effective-target objc_gc } */ |
| |
| #include <CoreFoundation/CoreFoundation.h> |
| #include <Foundation/Foundation.h> |
| |
| static CFMutableDictionaryRef classToZombie = NULL; |
| |
| void _PFZombifyObject(id object) { |
| Class cls = object->isa; |
| Class zclass = (classToZombie) ? (Class)CFDictionaryGetValue(classToZombie, cls) : NULL; |
| if (!zclass) { |
| if (!classToZombie) { |
| classToZombie = CFDictionaryCreateMutable(NULL, 0, NULL, NULL); |
| } |
| id tmp = NSAllocateObject(cls, 0, nil); |
| NSDeallocateObject(tmp); |
| zclass = *(Class*)tmp; |
| CFDictionarySetValue(classToZombie, cls, zclass); |
| } |
| object->isa = zclass; // line 18 |
| } |
| |