| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result |
| // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t |
| // RUN: diff %t %s.result |
| // DISABLE: mingw32 |
| |
| typedef unsigned char BOOL; |
| |
| @interface NSObject { |
| id isa; |
| } |
| +new; |
| +alloc; |
| -init; |
| -autorelease; |
| @end |
| |
| @interface NSAutoreleasePool : NSObject |
| - drain; |
| @end |
| |
| @interface A : NSObject { |
| @package |
| id object; |
| } |
| @end |
| |
| @interface B : NSObject |
| - (BOOL)containsSelf:(A*)a; |
| @end |
| |
| @implementation A |
| @end |
| |
| @implementation B |
| - (BOOL)containsSelf:(A*)a { |
| return a->object == self; |
| } |
| @end |
| |
| void NSLog(id, ...); |
| |
| int main (int argc, const char * argv[]) { |
| @autoreleasepool { |
| A *a = [A new]; |
| B *b = [B new]; |
| NSLog(@"%s", [b containsSelf:a] ? "YES" : "NO"); |
| } |
| return 0; |
| } |