1 | // RUN: %clang_cc1 -triple i386-apple-darwin9 -fobjc-gc -fsyntax-only -verify -Wno-objc-root-class %s |
2 | // RUN: %clang_cc1 -x objective-c++ -triple i386-apple-darwin9 -fobjc-gc -fsyntax-only -verify -Wno-objc-root-class %s |
3 | |
4 | @interface INTF |
5 | { |
6 | id IVAR; // expected-note {{instance variable is declared here}} |
7 | __weak id II; |
8 | __weak id WID; |
9 | id ID; |
10 | __weak INTF* AWEAK; |
11 | __weak INTF* WI; |
12 | } |
13 | @property (assign) __weak id pweak; |
14 | @property (assign) __weak id WID; |
15 | @property (assign) __strong id NOT; |
16 | @property (assign) id ID; |
17 | @property (assign) INTF* AWEAK; |
18 | @property (assign) __weak INTF* WI; |
19 | @end |
20 | |
21 | @implementation INTF |
22 | @synthesize pweak=IVAR; // expected-error {{existing instance variable 'IVAR' for __weak property 'pweak' must be __weak}} |
23 | @synthesize NOT=II; // expected-error {{existing instance variable 'II' for strong property 'NOT' may not be __weak}} |
24 | @synthesize WID; |
25 | @synthesize ID; |
26 | @synthesize AWEAK; // expected-error {{existing instance variable 'AWEAK' for strong property 'AWEAK' may not be __weak}} |
27 | @synthesize WI; |
28 | @end |
29 | |