blob: 87b80af9350eb0274452d0f38d6a5386994bf1f9 [file] [log] [blame]
John McCalld1e40d52011-10-02 01:16:38 +00001// 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
John McCall8f0e8d22011-06-15 23:25:17 +00003// RUN: diff %t %s.result
John McCall8f0e8d22011-06-15 23:25:17 +00004
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}