1 // RUN: %clang_cc1 -triple x86_64-apple-macosx10.6 -fsyntax-only -fobjc-runtime-has-weak -fobjc-arc -x objective-c %s.result 2 // RUN: arcmt-test --args -triple x86_64-apple-macosx10.6 -fsyntax-only -fobjc-gc-only -x objective-c %s > %t 3 // RUN: diff %t %s.result 4 // RUN: arcmt-test --args -triple x86_64-apple-macosx10.6 -fsyntax-only -fobjc-gc-only -x objective-c++ %s > %t 5 // RUN: diff %t %s.result 6 // DISABLE: mingw32 7 8 #include "Common.h" 9 #include "GC.h" 10 11 void test1(CFTypeRef *cft) { 12 id x = CFBridgingRelease(cft); 13 } 14 15 @interface I1 16 @end 17 18 @implementation I1 19 -(void)dealloc { 20 // dealloc 21 test1(0); 22 } 23 24 @end 25 26 @interface I2 27 @property (strong) id prop; 28 @end 29 30 @implementation I2 31 @synthesize prop; 32 33 -(void)dealloc { 34 // finalize 35 test1(0); 36 } 37 @end 38 39 __attribute__((objc_arc_weak_reference_unavailable)) 40 @interface QQ { 41 __unsafe_unretained id s; 42 __unsafe_unretained QQ *q; 43 } 44 @end 45 46 @interface I3 47 @property (unsafe_unretained) I3 * pw1, * pw2; 48 @property (strong) I3 * ps; 49 @property (assign) I3 * pds; 50 @end 51 52 @interface I4Impl { 53 I4Impl *__strong pds2; 54 } 55 @property (unsafe_unretained) I4Impl * pw1, * pw2; 56 @property (strong) I4Impl * ps; 57 @property (strong) I4Impl * pds; 58 @property (strong) I4Impl * pds2; 59 @end 60 61 @implementation I4Impl 62 @synthesize pw1, pw2, ps, pds, pds2; 63 64 -(void)test1:(CFTypeRef *)cft { 65 id x = CFBridgingRelease(cft); 66 } 67 @end 68 69 @interface I5 { 70 __unsafe_unretained id prop; 71 } 72 @property (unsafe_unretained, readonly) id prop; 73 @end 74