| // RUN: %clang_cc1 -fsyntax-only -verify %s |
| // expected-no-diagnostics |
| |
| 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[]) { |
| NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; |
| A *a = [[A new] autorelease]; |
| B *b = [[B new] autorelease]; |
| NSLog(@"%s", [b containsSelf:a] ? "YES" : "NO"); |
| [pool drain]; |
| return 0; |
| } |
| |