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