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