// RUN: %clang_cc1 -Woverriding-method-mismatch -fsyntax-only -verify -Wno-objc-root-class %s
// rdar://6191214
@protocolXint-(void)setX:(int)arg0;// expected-note {{previous declaration is here}}
+(int)C;// expected-note {{previous declaration is here}}
@end@protocolXfloat-(void)setX:(float)arg0;// expected-note 2 {{previous declaration is here}}
+(float)C;// expected-note 2 {{previous declaration is here}}
@end@interfaceA<Xint, Xfloat>@end@implementationA-(void)setX:(int)arg0{}// expected-warning {{conflicting parameter types in declaration of 'setX:': 'float' vs 'int'}}
+(int)C{return0;}// expected-warning {{conflicting return type in declaration of 'C': 'float' vs 'int'}}
@end@interfaceB<Xfloat, Xint>@end@implementationB-(void)setX:(float)arg0{}// expected-warning {{conflicting parameter types in declaration of 'setX:': 'int' vs 'float'}}
+ (float)C{return0.0;}// expected-warning {{conflicting return type in declaration of 'C': 'int' vs 'float'}}
@end@protocolXint_float<Xint, Xfloat>@end@interfaceC<Xint_float>@end@implementationC-(void)setX:(int)arg0{}// expected-warning {{conflicting parameter types in declaration of 'setX:': 'float' vs 'int'}}
+ (int)C{return0;}// expected-warning {{conflicting return type in declaration of 'C': 'float' vs 'int'}}
@end