autoreleases.m.result revision 510037b4c28f1a6a78660f93299d2db25676f68b
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// XFAIL: mingw
5
6typedef unsigned char BOOL;
7
8@interface NSObject {
9  id isa;
10}
11+new;
12+alloc;
13-init;
14-autorelease;
15@end
16
17@interface NSAutoreleasePool : NSObject
18- drain;
19@end
20 
21@interface A : NSObject {
22@package
23    id object;
24}
25@end
26
27@interface B : NSObject
28- (BOOL)containsSelf:(A*)a;
29@end
30
31@implementation A
32@end
33
34@implementation B
35- (BOOL)containsSelf:(A*)a {
36    return a->object == self;
37}
38@end
39
40void NSLog(id, ...);
41
42int main (int argc, const char * argv[]) {
43    @autoreleasepool {
44        A *a = [A new];
45        B *b = [B new];
46        NSLog(@"%s", [b containsSelf:a] ? "YES" : "NO");
47    }
48    return 0;
49}
50