1// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3@interface Root @end
4
5@interface SuperClass  : Root
6{
7  int iSuper;	// expected-note {{previous declaration is here}}
8}
9@end
10
11@interface SubClass : SuperClass {
12    int ivar;	// expected-error {{duplicate member 'ivar'}}
13    int another_ivar;	// expected-error {{duplicate member 'another_ivar'}}
14    int iSuper;	// expected-error {{duplicate member 'iSuper'}}
15}
16@end
17
18@interface SuperClass () {
19   int ivar;	// expected-note {{previous declaration is here}}
20}
21@end
22
23@interface Root () {
24  int another_ivar;	// expected-note {{previous declaration is here}}
25}
26@end
27
28@implementation SubClass
29-(int) method {
30        return self->ivar;  // would be ambiguous if the duplicate ivar were allowed
31}
32@end
33