John McCall | 24fc0de | 2011-07-06 00:26:06 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -fsyntax-only -fobjc-arc -fobjc-runtime-has-weak -x objective-c %s.result |
Argyrios Kyrtzidis | bdf3ca9 | 2011-06-16 02:41:46 +0000 | [diff] [blame] | 2 | // RUN: arcmt-test --args -triple x86_64-apple-macosx10.7 -fobjc-nonfragile-abi -fsyntax-only %s > %t |
John McCall | d70fb98 | 2011-06-15 23:25:17 +0000 | [diff] [blame] | 3 | // RUN: diff %t %s.result |
| 4 | |
| 5 | #include "Common.h" |
| 6 | |
Argyrios Kyrtzidis | ce9b739 | 2011-07-12 22:05:17 +0000 | [diff] [blame] | 7 | __attribute__((objc_arc_weak_reference_unavailable)) |
| 8 | @interface WeakOptOut |
| 9 | @end |
| 10 | |
| 11 | @class _NSCachedAttributedString; |
Argyrios Kyrtzidis | ce9b739 | 2011-07-12 22:05:17 +0000 | [diff] [blame] | 12 | typedef _NSCachedAttributedString *BadClassForWeak; |
| 13 | |
Argyrios Kyrtzidis | a200973 | 2011-07-12 22:16:25 +0000 | [diff] [blame^] | 14 | @class Forw; |
| 15 | |
John McCall | d70fb98 | 2011-06-15 23:25:17 +0000 | [diff] [blame] | 16 | @interface Foo : NSObject { |
Argyrios Kyrtzidis | ce9b739 | 2011-07-12 22:05:17 +0000 | [diff] [blame] | 17 | Foo *x, *w, *q1, *q2; |
| 18 | Foo *z1, *__unsafe_unretained z2; |
| 19 | WeakOptOut *oo; |
| 20 | BadClassForWeak bcw; |
| 21 | id not_safe1; |
| 22 | NSObject *not_safe2; |
Argyrios Kyrtzidis | a200973 | 2011-07-12 22:16:25 +0000 | [diff] [blame^] | 23 | Forw *not_safe3; |
John McCall | d70fb98 | 2011-06-15 23:25:17 +0000 | [diff] [blame] | 24 | } |
Argyrios Kyrtzidis | ce9b739 | 2011-07-12 22:05:17 +0000 | [diff] [blame] | 25 | @property (readonly,assign) Foo *x; |
| 26 | @property (assign) Foo *w; |
| 27 | @property (assign) Foo *q1, *q2; |
| 28 | @property (assign) Foo *z1, *z2; |
| 29 | @property (assign) WeakOptOut *oo; |
| 30 | @property (assign) BadClassForWeak bcw; |
| 31 | @property (assign) id not_safe1; |
| 32 | @property (assign) NSObject *not_safe2; |
Argyrios Kyrtzidis | a200973 | 2011-07-12 22:16:25 +0000 | [diff] [blame^] | 33 | @property (assign) Forw *not_safe3; |
John McCall | d70fb98 | 2011-06-15 23:25:17 +0000 | [diff] [blame] | 34 | @end |
| 35 | |
| 36 | @implementation Foo |
Argyrios Kyrtzidis | a200973 | 2011-07-12 22:16:25 +0000 | [diff] [blame^] | 37 | @synthesize x,w,q1,q2,z1,z2,oo,bcw,not_safe1,not_safe2,not_safe3; |
John McCall | d70fb98 | 2011-06-15 23:25:17 +0000 | [diff] [blame] | 38 | @end |