xref: /llvm-project/clang/test/SemaObjC/ivar-sem-check-2.m (revision 14fd801f8f2dbb05fea07a1bd061324f2dab825b)
19b0a7ceaSJohn McCall// RUN: %clang_cc1  -fsyntax-only -verify %s
2b6d5b548SFariborz Jahanian
3b6d5b548SFariborz Jahanian@interface Super  {
4bff0167aSFariborz Jahanian  id value2; // expected-note {{previously declared 'value2' here}}
5b6d5b548SFariborz Jahanian}
6b6d5b548SFariborz Jahanian@property(retain) id value;
7b6d5b548SFariborz Jahanian@property(retain) id value1;
8bff0167aSFariborz Jahanian@property(retain) id prop;
9b6d5b548SFariborz Jahanian@end
10b6d5b548SFariborz Jahanian
11bff0167aSFariborz Jahanian@interface Sub : Super
12bff0167aSFariborz Jahanian{
13bff0167aSFariborz Jahanian  id value;
14bff0167aSFariborz Jahanian}
15bff0167aSFariborz Jahanian@end
16b6d5b548SFariborz Jahanian
17b6d5b548SFariborz Jahanian@implementation Sub
18bff0167aSFariborz Jahanian@synthesize value; // expected-note {{previous use is here}}
19*14fd801fSFariborz Jahanian@synthesize value1=value; // expected-error {{synthesized properties 'value1' and 'value' both claim instance variable 'value'}}
20*14fd801fSFariborz Jahanian@synthesize prop=value2;  // expected-error {{property 'prop' attempting to use instance variable 'value2' declared in super class 'Super'}}
21b6d5b548SFariborz Jahanian@end
22b6d5b548SFariborz Jahanian
23b6d5b548SFariborz Jahanian
24