diff options
Diffstat (limited to 'clang/test/SemaObjC/ivar-access-package.m')
-rw-r--r-- | clang/test/SemaObjC/ivar-access-package.m | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/clang/test/SemaObjC/ivar-access-package.m b/clang/test/SemaObjC/ivar-access-package.m new file mode 100644 index 0000000..abc3420 --- /dev/null +++ b/clang/test/SemaObjC/ivar-access-package.m @@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s + +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; +} + |