1// RUN: %clang_cc1 -fsyntax-only -verify %s
2// expected-no-diagnostics
3
4typedef 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
38void NSLog(id, ...);
39
40int 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