2011-10-02 09:16:38 +08:00
|
|
|
// 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
|
2011-06-16 07:25:17 +08:00
|
|
|
// RUN: diff %t %s.result
|
2012-01-12 10:34:32 +08:00
|
|
|
// DISABLE: mingw32
|
2011-06-16 07:25:17 +08:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|