33 lines
		
	
	
		
			745 B
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			745 B
		
	
	
	
		
			Objective-C
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify %s
 | |
| 
 | |
| @interface Root @end
 | |
| 
 | |
| @interface SuperClass  : Root 
 | |
| {
 | |
|   int iSuper;	// expected-note {{previous declaration is here}}
 | |
| }
 | |
| @end
 | |
| 
 | |
| @interface SubClass : SuperClass {
 | |
|     int ivar;	// expected-error {{duplicate member 'ivar'}}
 | |
|     int another_ivar;	// expected-error {{duplicate member 'another_ivar'}}
 | |
|     int iSuper;	// expected-error {{duplicate member 'iSuper'}}
 | |
| }
 | |
| @end
 | |
| 
 | |
| @interface SuperClass () {
 | |
|    int ivar;	// expected-note {{previous declaration is here}}
 | |
| }
 | |
| @end
 | |
| 
 | |
| @interface Root () {
 | |
|   int another_ivar;	// expected-note {{previous declaration is here}}
 | |
| }
 | |
| @end
 | |
| 
 | |
| @implementation SubClass
 | |
| -(int) method {
 | |
|         return self->ivar;  // would be ambiguous if the duplicate ivar were allowed
 | |
| }
 | |
| @end
 |