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

typedef unsigned char BOOL;

@interface NSObject {
  id isa;
}
+new;
+alloc;
-init;
-autorelease;
@end

@interface NSAutoreleasePool : NSObject
- drain;
@end
 
@interface A : NSObject {
@package
    id object;
}
@end

@interface B : NSObject
- (BOOL)containsSelf:(A*)a;
@end

@implementation A
@end

@implementation B
- (BOOL)containsSelf:(A*)a {
    return a->object == self;
}
@end

void NSLog(id, ...);

int main (int argc, const char * argv[]) {
    @autoreleasepool {
        A *a = [A new];
        B *b = [B new];
        NSLog(@"%s", [b containsSelf:a] ? "YES" : "NO");
    }
    return 0;
}
