// RUN: %clang_cc1 -fsyntax-only -fobjc-nonfragile-abi2 -verify %s

/**
When processing @synthesize, treat ivars in a class extension the same as ivars in the class @interface, 
and treat ivars in a superclass extension the same as ivars in the superclass @interface.
In particular, when searching for an ivar to back an @synthesize, do look at ivars in the class's own class 
extension but ignore any ivars in superclass class extensions.
*/

@interface Super {
  	int ISA;
}
@end

@interface Super() {
  int Property;		// expected-note {{previously declared 'Property' here}}
}
@end

@interface SomeClass : Super {
        int interfaceIvar1;
        int interfaceIvar2;
}
@property int Property;
@property int Property1;
@end

@interface SomeClass () {
  int Property1;
}
@end

@implementation SomeClass 
@synthesize Property;	// expected-error {{property 'Property' attempting to use ivar 'Property' declared in super class 'Super'}}
@synthesize Property1;	// OK
@end
