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 | |