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 14void NSLog(id, ...); 15 16void 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 29void 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