1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -fobjc-runtime-has-weak -x objective-c %s.result 2 // RUN: arcmt-test --args -triple x86_64-apple-macosx10.7 -fsyntax-only %s > %t 3 // RUN: diff %t %s.result 4 5 #include "Common.h" 6 7 __attribute__((objc_arc_weak_reference_unavailable)) 8 @interface WeakOptOut 9 @end 10 11 @class _NSCachedAttributedString; 12 typedef _NSCachedAttributedString *BadClassForWeak; 13 14 @class Forw; 15 16 @interface Foo : NSObject { 17 Foo *x, *w, *q1, *q2; 18 WeakOptOut *oo; 19 BadClassForWeak bcw; 20 id not_safe1; 21 NSObject *not_safe2; 22 Forw *not_safe3; 23 Foo *assign_plus1; 24 } 25 @property (readonly) Foo *x; 26 @property (assign) Foo *w; 27 @property Foo *q1, *q2; 28 @property (assign) WeakOptOut *oo; 29 @property (assign) BadClassForWeak bcw; 30 @property (assign) id not_safe1; 31 @property () NSObject *not_safe2; 32 @property Forw *not_safe3; 33 @property (readonly) Foo *assign_plus1; 34 @property (readonly) Foo *assign_plus2; 35 @property (readonly) Foo *assign_plus3; 36 37 @property (assign) Foo *no_user_ivar1; 38 @property (readonly) Foo *no_user_ivar2; 39 40 @property (retain) id def1; 41 @property (atomic,retain) id def2; 42 @property (retain,atomic) id def3; 43 44 @end 45 46 @implementation Foo 47 @synthesize x,w,q1,q2,oo,bcw,not_safe1,not_safe2,not_safe3; 48 @synthesize no_user_ivar1, no_user_ivar2; 49 @synthesize assign_plus1, assign_plus2, assign_plus3; 50 @synthesize def1, def2, def3; 51 52 -(void)test:(Foo *)parm { 53 assign_plus1 = [[Foo alloc] init]; 54 assign_plus2 = [Foo new]; 55 assign_plus3 = [parm retain]; 56 } 57 @end 58 59 @interface TestExt 60 @property (retain,readonly) TestExt *x1; 61 @property (readonly) TestExt *x2; 62 @end 63 64 @interface TestExt() 65 @property (retain,readwrite) TestExt *x1; 66 @property (readwrite) TestExt *x2; 67 @property (retain) TestExt *x3; 68 @end 69 70 @implementation TestExt 71 @synthesize x1, x2, x3; 72 @end 73