// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7 -fsyntax-only -fobjc-runtime-has-weak -fobjc-arc -x objective-c %s.result // RUN: arcmt-test --args -triple x86_64-apple-macosx10.7 -fsyntax-only -fobjc-gc-only -x objective-c %s > %t // RUN: diff %t %s.result // RUN: arcmt-test --args -triple x86_64-apple-macosx10.7 -fsyntax-only -fobjc-gc-only -x objective-c++ %s > %t // RUN: diff %t %s.result #include "Common.h" #include "GC.h" void test1(CFTypeRef *cft) { id x = NSMakeCollectable(cft); } @interface I1 @end @implementation I1 -(void)dealloc { // dealloc test1(0); } -(void)finalize { // finalize test1(0); } @end @interface I2 @property (retain) id prop; @end @implementation I2 @synthesize prop; -(void)finalize { self.prop = 0; // finalize test1(0); } @end __attribute__((objc_arc_weak_reference_unavailable)) @interface QQ { __weak id s; __weak QQ *q; } @end @interface I3 @property (assign) I3 *__weak pw1, *__weak pw2; @property (assign) I3 *__strong ps; @property (assign) I3 * pds; @end @interface I4Impl { I4Impl *pds2; I4Impl *pds3; __weak I4Impl *pw3; __weak I4Impl *pw4; } @property (assign) I4Impl *__weak pw1, *__weak pw2; @property (assign) I4Impl *__strong ps; @property (assign) I4Impl * pds; @property (assign) I4Impl * pds2; @property (readwrite) I4Impl * pds3; @property (readonly) I4Impl * pds4; @property (readonly) __weak I4Impl *pw3; @property (assign) __weak I4Impl *pw4; @end @implementation I4Impl @synthesize pw1, pw2, pw3, pw4, ps, pds, pds2, pds3, pds4; -(void)test1:(CFTypeRef *)cft { id x = NSMakeCollectable(cft); } @end // rdar://10532449 @interface rdar10532449 @property (assign) id assign_prop; @property (assign, readonly) id __strong strong_readonly_prop; @property (assign) id __weak weak_prop; @end @implementation rdar10532449 @synthesize assign_prop, strong_readonly_prop, weak_prop; @end void test2(id p, __strong I1 *ap[]) { for (__strong I1 *specRule in p) { } } |