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