1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result 2*67e74705SXin Li// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t 3*67e74705SXin Li// RUN: diff %t %s.result 4*67e74705SXin Li 5*67e74705SXin Li#include "Common.h" 6*67e74705SXin Li 7*67e74705SXin Livoid NSLog(id, ...); 8*67e74705SXin Li 9*67e74705SXin Liint main (int argc, const char * argv[]) { 10*67e74705SXin Li 11*67e74705SXin Li NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 12*67e74705SXin Li 13*67e74705SXin Li if (argc) { 14*67e74705SXin Li NSAutoreleasePool * pool = [NSAutoreleasePool new]; 15*67e74705SXin Li NSLog(@"%s", "YES"); 16*67e74705SXin Li [pool drain]; 17*67e74705SXin Li } 18*67e74705SXin Li [pool drain]; 19*67e74705SXin Li 20*67e74705SXin Li NSAutoreleasePool * pool1 = [[NSAutoreleasePool alloc] init]; 21*67e74705SXin Li NSLog(@"%s", "YES"); 22*67e74705SXin Li [pool1 release]; 23*67e74705SXin Li 24*67e74705SXin Li return 0; 25*67e74705SXin Li} 26*67e74705SXin Li 27*67e74705SXin Livoid f(void) { 28*67e74705SXin Li NSAutoreleasePool *pool1; 29*67e74705SXin Li 30*67e74705SXin Li pool1 = [NSAutoreleasePool new]; 31*67e74705SXin Li int x = 4; 32*67e74705SXin Li 33*67e74705SXin Li NSAutoreleasePool *pool2 = [[NSAutoreleasePool alloc] init]; 34*67e74705SXin Li ++x; 35*67e74705SXin Li [pool2 drain]; 36*67e74705SXin Li 37*67e74705SXin Li [pool1 release]; 38*67e74705SXin Li} 39*67e74705SXin Li 40*67e74705SXin Liint UIApplicationMain(int argc, char *argv[]); 41*67e74705SXin Li 42*67e74705SXin Liint main2(int argc, char *argv[]) { 43*67e74705SXin Li NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 44*67e74705SXin Li int result = UIApplicationMain(argc, argv); 45*67e74705SXin Li [pool release]; 46*67e74705SXin Li return result; 47*67e74705SXin Li} 48*67e74705SXin Li 49*67e74705SXin Li@interface Foo : NSObject 50*67e74705SXin Li@property (assign) id myProp; 51*67e74705SXin Li@end 52*67e74705SXin Li 53*67e74705SXin Li@implementation Foo 54*67e74705SXin Li@synthesize myProp; 55*67e74705SXin Li 56*67e74705SXin Li-(void)test:(id)p { 57*67e74705SXin Li NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 58*67e74705SXin Li [pool drain]; 59*67e74705SXin Li self.myProp = p; 60*67e74705SXin Li} 61*67e74705SXin Li@end 62