1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result 2 // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t 3 // RUN: diff %t %s.result 4 5 @interface NSAutoreleasePool 6 - drain; 7 +new; 8 +alloc; 9 -init; 10 -autorelease; 11 - release; 12 @end 13 14 void NSLog(id, ...); 15 16 void test1(int x) { 17 // All this stuff get removed since nothing is happening inside. 18 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 19 NSAutoreleasePool *chunkPool = [[NSAutoreleasePool alloc] init]; 20 while (x) { 21 chunkPool = [[NSAutoreleasePool alloc] init]; 22 [chunkPool release]; 23 } 24 25 [chunkPool drain]; 26 [pool drain]; 27 } 28 29 void test2(int x) { 30 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 31 NSAutoreleasePool *chunkPool = [[NSAutoreleasePool alloc] init]; 32 while (x) { 33 chunkPool = [[NSAutoreleasePool alloc] init]; 34 ++x; 35 [chunkPool release]; 36 } 37 38 [chunkPool drain]; 39 [pool drain]; 40 } 41