blob: ed78cb4e2e57109afb92273fab399d181fb63cf1 [file] [log] [blame]
John McCalld1e40d52011-10-02 01:16:38 +00001// 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
John McCall8f0e8d22011-06-15 23:25:17 +00003// RUN: diff %t %s.result
4
5typedef 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
39void NSLog(id, ...);
40
41int 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}