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