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