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