// RUN: %clang_cc1 -triple x86_64-apple-macosx10.6 -fsyntax-only -fobjc-runtime-has-weak -fobjc-arc -x objective-c %s.result // RUN: arcmt-test --args -triple x86_64-apple-macosx10.6 -fsyntax-only -fobjc-gc-only -x objective-c %s > %t // RUN: diff %t %s.result // RUN: arcmt-test --args -triple x86_64-apple-macosx10.6 -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 = CFBridgingRelease(cft); } @interface I1 @end @implementation I1 -(void)dealloc { // dealloc test1(0); } @end @interface I2 @property (strong) id prop; @end @implementation I2 @synthesize prop; -(void)dealloc { // finalize test1(0); } @end __attribute__((objc_arc_weak_reference_unavailable)) @interface QQ { __unsafe_unretained id s; __unsafe_unretained QQ *q; } @end @interface I3 @property (unsafe_unretained) I3 * pw1, * pw2; @property (strong) I3 * ps; @property (assign) I3 * pds; @end @interface I4Impl { I4Impl *__strong pds2; } @property (unsafe_unretained) I4Impl * pw1, * pw2; @property (strong) I4Impl * ps; @property (strong) I4Impl * pds; @property (strong) I4Impl * pds2; @end @implementation I4Impl @synthesize pw1, pw2, ps, pds, pds2; -(void)test1:(CFTypeRef *)cft { id x = CFBridgingRelease(cft); } @end @interface I5 { __unsafe_unretained id prop; } @property (unsafe_unretained, readonly) id prop; @end