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

#define nil (void *)0

@interface NSObject
-init;
@end

@interface A : NSObject
-init;
-init2;
-foo;
+alloc;
@end

@implementation A
-(id) init {
  if (!(self = [self init])) return nil;
  id a;
  [a init];
  a = [[A alloc] init];

  return self;
}

-(id) init2 {
  if (!(self = [super init])) return nil;
  return self;
}

-(id) foo {
  [self init];
  [super init];

  return self;
}
@end