blob: b1e1f2c2efad1618bc97f8074d8b07aa93e54331 [file] [log] [blame]
John McCalld1e40d52011-10-02 01:16:38 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Fariborz Jahanian29da66e2009-04-13 19:30:37 +00002
3@interface Super {
Fariborz Jahanian6e5201b2009-04-29 21:45:02 +00004 id value2; // expected-note {{previously declared 'value2' here}}
Fariborz Jahanian29da66e2009-04-13 19:30:37 +00005}
6@property(retain) id value;
7@property(retain) id value1;
Fariborz Jahanian6e5201b2009-04-29 21:45:02 +00008@property(retain) id prop;
Fariborz Jahanian29da66e2009-04-13 19:30:37 +00009@end
10
Fariborz Jahanian6e5201b2009-04-29 21:45:02 +000011@interface Sub : Super
12{
13 id value;
14}
15@end
Fariborz Jahanian29da66e2009-04-13 19:30:37 +000016
17@implementation Sub
Fariborz Jahanian6e5201b2009-04-29 21:45:02 +000018@synthesize value; // expected-note {{previous use is here}}
Fariborz Jahanian59ed9e42012-09-24 22:00:36 +000019@synthesize value1=value; // expected-error {{synthesized properties 'value1' and 'value' both claim instance variable 'value'}}
20@synthesize prop=value2; // expected-error {{property 'prop' attempting to use instance variable 'value2' declared in super class 'Super'}}
Fariborz Jahanian29da66e2009-04-13 19:30:37 +000021@end
22
23