// RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.core -analyzer-checker=osx.cocoa.IncompatibleMethodTypes -verify -Wno-objc-root-class %s
int printf(const char *, ...);
@interface MyBase
-(long long)length;
-(long long)suppressedLength;
@end
@interface MySub : MyBase{}
-(double)length;
-(double)suppressedLength;
@end
@implementation MyBase
-(long long)length{
printf("Called MyBase -length;\n");
return 3;
}
-(long long)suppressedLength{
printf("Called MyBase -length;\n");
return 3;
}
@end
@implementation MySub
-(double)length{ // expected-warning{{types are incompatible}}
printf("Called MySub -length;\n");
return 3.3;
}
-(double)suppressedLength [[clang::suppress]]{ // no-warning
printf("Called MySub -length;\n");
return 3.3;
}
@end