1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result 2 // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t 3 // RUN: diff %t %s.result 4 5 typedef 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 39 void NSLog(id, ...); 40 41 int 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