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// DISABLE: mingw32 5 6#include "Common.h" 7 8@interface A : NSObject { 9@package 10 id object; 11} 12@end 13 14@interface B : NSObject { 15 id _prop; 16 xpc_object_t _xpc_prop; 17} 18- (BOOL)containsSelf:(A*)a; 19@property (strong) id prop; 20@property (strong) xpc_object_t xpc_prop; 21@end 22 23@implementation A 24@end 25 26@implementation B 27- (BOOL)containsSelf:(A*)a { 28 return a->object == self; 29} 30 31-(id) prop { 32 return _prop; 33} 34-(void) setProp:(id) newVal { 35 _prop = newVal; 36} 37-(void) setProp2:(CFTypeRef) newVal { 38 _prop = (id)CFBridgingRelease(CFRetain(newVal)); 39} 40 41-(id) xpc_prop { 42 return _xpc_prop; 43} 44-(void) setXpc_prop:(xpc_object_t) newVal { 45 _xpc_prop = newVal; 46} 47@end 48 49void NSLog(id, ...); 50 51int main (int argc, const char * argv[]) { 52 @autoreleasepool { 53 A *a = [A new]; 54 B *b = [B new]; 55 NSLog(@"%s", [b containsSelf:a] ? "YES" : "NO"); 56 } 57 return 0; 58} 59 60void test(A *prevVal, A *newVal) { 61 prevVal = newVal; 62} 63 64id test2(A* val) { 65 return val; 66} 67 68id test3() { 69 id a = [[A alloc] init]; 70} 71