forked from OSchip/llvm-project
70 lines
1.2 KiB
Plaintext
70 lines
1.2 KiB
Plaintext
// 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
|
|
// RUN: diff %t %s.result
|
|
|
|
#include "Common.h"
|
|
|
|
@interface A : NSObject {
|
|
@package
|
|
id object;
|
|
}
|
|
@end
|
|
|
|
@interface B : NSObject {
|
|
id _prop;
|
|
xpc_object_t _xpc_prop;
|
|
}
|
|
- (BOOL)containsSelf:(A*)a;
|
|
@property (strong) id prop;
|
|
@property (strong) xpc_object_t xpc_prop;
|
|
@end
|
|
|
|
@implementation A
|
|
@end
|
|
|
|
@implementation B
|
|
- (BOOL)containsSelf:(A*)a {
|
|
return a->object == self;
|
|
}
|
|
|
|
-(id) prop {
|
|
return _prop;
|
|
}
|
|
-(void) setProp:(id) newVal {
|
|
_prop = newVal;
|
|
}
|
|
-(void) setProp2:(CFTypeRef) newVal {
|
|
_prop = (id)CFBridgingRelease(CFRetain(newVal));
|
|
}
|
|
|
|
-(id) xpc_prop {
|
|
return _xpc_prop;
|
|
}
|
|
-(void) setXpc_prop:(xpc_object_t) newVal {
|
|
_xpc_prop = newVal;
|
|
}
|
|
@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;
|
|
}
|
|
|
|
void test(A *prevVal, A *newVal) {
|
|
prevVal = newVal;
|
|
}
|
|
|
|
id test2(A* val) {
|
|
return val;
|
|
}
|
|
|
|
id test3(void) {
|
|
id a = [[A alloc] init];
|
|
}
|