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