// 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
// DISABLE: mingw32

#include "Common.h"

void NSLog(id, ...);

int main (int argc, const char * argv[]) {

    @autoreleasepool {

        if (argc) {
            @autoreleasepool {
                NSLog(@"%s", "YES");
            }
        }
    }

    @autoreleasepool {
        NSLog(@"%s", "YES");
    }

    return 0;
}

void f(void) {

  @autoreleasepool {
    int x = 4;

    @autoreleasepool {
      ++x;
    }

  }
}

int UIApplicationMain(int argc, char *argv[]);

int main2(int argc, char *argv[]) {
    @autoreleasepool {
        int result = UIApplicationMain(argc, argv);
        return result;
    }
}

@interface Foo : NSObject
@property (unsafe_unretained) id myProp;
@end

@implementation Foo
@synthesize myProp;

-(void)test:(id)p {
  @autoreleasepool {
  }
  self.myProp = p;
}
@end
