1// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -fsyntax-only -fobjc-arc -x objective-c %s.result 2// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -fsyntax-only -x objective-c %s > %t 3// RUN: diff %t %s.result 4 5typedef unsigned char BOOL; 6 7@interface NSObject { 8 id isa; 9} 10+new; 11+alloc; 12-init; 13-autorelease; 14@end 15 16@interface NSAutoreleasePool : NSObject 17- drain; 18@end 19 20@interface A : NSObject { 21@package 22 id object; 23} 24@end 25 26@interface B : NSObject 27- (BOOL)containsSelf:(A*)a; 28@end 29 30@implementation A 31@end 32 33@implementation B 34- (BOOL)containsSelf:(A*)a { 35 return a->object == self; 36} 37@end 38 39void NSLog(id, ...); 40 41int main (int argc, const char * argv[]) { 42 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 43 A *a = [[A new] autorelease]; 44 B *b = [[B new] autorelease]; 45 NSLog(@"%s", [b containsSelf:a] ? "YES" : "NO"); 46 [pool drain]; 47 return 0; 48} 49