// RUN: %llvmgcc -w -x objective-c -S %s -o /dev/null @interface Object { @public Class isa; } +initialize; +alloc; +new; +free; -free; +(Class)class; -(Class)class; -init; -superclass; -(const char *)name; @end @interface Frob: Object @end @implementation Frob: Object @end static Frob* _connection = ((void *)0); extern void abort(void); void test (Object* sendPort) { int cleanupPorts = 1; Frob* receivePort = ((void *)0); @try { receivePort = (Frob *) -1; _connection = (Frob *) -1; receivePort = ((void *)0); sendPort = ((void *)0); cleanupPorts = 0; @throw [Object new]; } @catch(Frob *obj) { if(!(0)) abort(); } @catch(id exc) { if(!(!receivePort)) abort(); if(!(!sendPort)) abort(); if(!(!cleanupPorts)) abort(); } }