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