Home | History | Annotate | Download | only in ARCMT
      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