xref: /llvm-project/clang/test/ARCMT/GC-no-arc-runtime.m.result (revision 5a60686cf900467c7f7bcd7d11025bb27ac6a9ad)
12519a080SArgyrios Kyrtzidis// RUN: %clang_cc1 -triple x86_64-apple-macosx10.6 -fsyntax-only -fobjc-runtime-has-weak -fobjc-arc -x objective-c %s.result
22519a080SArgyrios Kyrtzidis// RUN: arcmt-test --args -triple x86_64-apple-macosx10.6 -fsyntax-only -fobjc-gc-only -x objective-c %s > %t
32519a080SArgyrios Kyrtzidis// RUN: diff %t %s.result
42519a080SArgyrios Kyrtzidis// RUN: arcmt-test --args -triple x86_64-apple-macosx10.6 -fsyntax-only -fobjc-gc-only -x objective-c++ %s > %t
52519a080SArgyrios Kyrtzidis// RUN: diff %t %s.result
62519a080SArgyrios Kyrtzidis
72519a080SArgyrios Kyrtzidis#include "Common.h"
82519a080SArgyrios Kyrtzidis#include "GC.h"
92519a080SArgyrios Kyrtzidis
102519a080SArgyrios Kyrtzidisvoid test1(CFTypeRef *cft) {
112519a080SArgyrios Kyrtzidis  id x = CFBridgingRelease(cft);
122519a080SArgyrios Kyrtzidis}
132519a080SArgyrios Kyrtzidis
14*01c047e0SArgyrios Kyrtzidis@interface I1
152519a080SArgyrios Kyrtzidis@end
162519a080SArgyrios Kyrtzidis
172519a080SArgyrios Kyrtzidis@implementation I1
182519a080SArgyrios Kyrtzidis-(void)dealloc {
192519a080SArgyrios Kyrtzidis  // dealloc
202519a080SArgyrios Kyrtzidis  test1(0);
212519a080SArgyrios Kyrtzidis}
222519a080SArgyrios Kyrtzidis
232519a080SArgyrios Kyrtzidis@end
242519a080SArgyrios Kyrtzidis
252519a080SArgyrios Kyrtzidis@interface I2
269652adf2SFariborz Jahanian@property (strong) id prop;
272519a080SArgyrios Kyrtzidis@end
282519a080SArgyrios Kyrtzidis
292519a080SArgyrios Kyrtzidis@implementation I2
302519a080SArgyrios Kyrtzidis@synthesize prop;
312519a080SArgyrios Kyrtzidis
322519a080SArgyrios Kyrtzidis-(void)dealloc {
332519a080SArgyrios Kyrtzidis  // finalize
342519a080SArgyrios Kyrtzidis  test1(0);
352519a080SArgyrios Kyrtzidis}
362519a080SArgyrios Kyrtzidis@end
372519a080SArgyrios Kyrtzidis
382519a080SArgyrios Kyrtzidis__attribute__((objc_arc_weak_reference_unavailable))
392519a080SArgyrios Kyrtzidis@interface QQ {
402519a080SArgyrios Kyrtzidis  __unsafe_unretained id s;
412519a080SArgyrios Kyrtzidis  __unsafe_unretained QQ *q;
422519a080SArgyrios Kyrtzidis}
432519a080SArgyrios Kyrtzidis@end
442519a080SArgyrios Kyrtzidis
452519a080SArgyrios Kyrtzidis@interface I3
462519a080SArgyrios Kyrtzidis@property (unsafe_unretained) I3 * pw1, * pw2;
472519a080SArgyrios Kyrtzidis@property (strong) I3 * ps;
482519a080SArgyrios Kyrtzidis@property (assign) I3 * pds;
492519a080SArgyrios Kyrtzidis@end
502519a080SArgyrios Kyrtzidis
512519a080SArgyrios Kyrtzidis@interface I4Impl {
521630c15bSFariborz Jahanian  I4Impl *__strong pds2;
532519a080SArgyrios Kyrtzidis}
542519a080SArgyrios Kyrtzidis@property (unsafe_unretained) I4Impl * pw1, * pw2;
551630c15bSFariborz Jahanian@property (strong) I4Impl * ps;
561630c15bSFariborz Jahanian@property (strong) I4Impl * pds;
571630c15bSFariborz Jahanian@property (strong) I4Impl * pds2;
582519a080SArgyrios Kyrtzidis@end
592519a080SArgyrios Kyrtzidis
602519a080SArgyrios Kyrtzidis@implementation I4Impl
612519a080SArgyrios Kyrtzidis@synthesize pw1, pw2, ps, pds, pds2;
622519a080SArgyrios Kyrtzidis
632519a080SArgyrios Kyrtzidis-(void)test1:(CFTypeRef *)cft {
642519a080SArgyrios Kyrtzidis  id x = CFBridgingRelease(cft);
652519a080SArgyrios Kyrtzidis}
662519a080SArgyrios Kyrtzidis@end
67eca1f36aSArgyrios Kyrtzidis
68eca1f36aSArgyrios Kyrtzidis@interface I5 {
69eca1f36aSArgyrios Kyrtzidis  __unsafe_unretained id prop;
70eca1f36aSArgyrios Kyrtzidis}
71eca1f36aSArgyrios Kyrtzidis@property (unsafe_unretained, readonly)  id prop;
72eca1f36aSArgyrios Kyrtzidis@end
73