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 | #include "Common.h" |
6 | |
7 | void NSLog(id, ...); |
8 | |
9 | int main (int argc, const char * argv[]) { |
10 | |
11 | NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; |
12 | |
13 | if (argc) { |
14 | NSAutoreleasePool * pool = [NSAutoreleasePool new]; |
15 | NSLog(@"%s", "YES"); |
16 | [pool drain]; |
17 | } |
18 | [pool drain]; |
19 | |
20 | NSAutoreleasePool * pool1 = [[NSAutoreleasePool alloc] init]; |
21 | NSLog(@"%s", "YES"); |
22 | [pool1 release]; |
23 | |
24 | return 0; |
25 | } |
26 | |
27 | void f(void) { |
28 | NSAutoreleasePool *pool1; |
29 | |
30 | pool1 = [NSAutoreleasePool new]; |
31 | int x = 4; |
32 | |
33 | NSAutoreleasePool *pool2 = [[NSAutoreleasePool alloc] init]; |
34 | ++x; |
35 | [pool2 drain]; |
36 | |
37 | [pool1 release]; |
38 | } |
39 | |
40 | int UIApplicationMain(int argc, char *argv[]); |
41 | |
42 | int main2(int argc, char *argv[]) { |
43 | NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; |
44 | int result = UIApplicationMain(argc, argv); |
45 | [pool release]; |
46 | return result; |
47 | } |
48 | |
49 | @interface Foo : NSObject |
50 | @property (assign) id myProp; |
51 | @end |
52 | |
53 | @implementation Foo |
54 | @synthesize myProp; |
55 | |
56 | -(void)test:(id)p { |
57 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; |
58 | [pool drain]; |
59 | self.myProp = p; |
60 | } |
61 | @end |
62 | |