Home | History | Annotate | Download | only in ARCMT
      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