// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t // RUN: diff %t %s.result #include "Common.h" void NSLog(id, ...); int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; if (argc) { NSAutoreleasePool * pool = [NSAutoreleasePool new]; NSLog(@"%s", "YES"); [pool drain]; } [pool drain]; NSAutoreleasePool * pool1 = [[NSAutoreleasePool alloc] init]; NSLog(@"%s", "YES"); [pool1 release]; return 0; } void f(void) { NSAutoreleasePool *pool1; pool1 = [NSAutoreleasePool new]; int x = 4; NSAutoreleasePool *pool2 = [[NSAutoreleasePool alloc] init]; ++x; [pool2 drain]; [pool1 release]; } int UIApplicationMain(int argc, char *argv[]); int main2(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int result = UIApplicationMain(argc, argv); [pool release]; return result; } @interface Foo : NSObject @property (assign) id myProp; @end @implementation Foo @synthesize myProp; -(void)test:(id)p { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; [pool drain]; self.myProp = p; } @end |