// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t // RUN: diff %t %s.result // DISABLE: mingw32 @interface NSAutoreleasePool - drain; +new; +alloc; -init; -autorelease; - release; @end void NSLog(id, ...); void test1(int x) { // All this stuff get removed since nothing is happening inside. NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSAutoreleasePool *chunkPool = [[NSAutoreleasePool alloc] init]; while (x) { chunkPool = [[NSAutoreleasePool alloc] init]; [chunkPool release]; } [chunkPool drain]; [pool drain]; } void test2(int x) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSAutoreleasePool *chunkPool = [[NSAutoreleasePool alloc] init]; while (x) { chunkPool = [[NSAutoreleasePool alloc] init]; ++x; [chunkPool release]; } [chunkPool drain]; [pool drain]; }