// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config ipa=dynamic-bifurcate -verify %s
typedefsignedcharBOOL;@protocolNSObject-(BOOL)isEqual:(id)object; @end
@interfaceNSObject<NSObject>{}+(id)alloc;-(id)init;+(id)new;-(id)autorelease;-(id)copy;- (Class)class;-(id)retain;@endvoidclang_analyzer_eval(BOOL);@interfaceSomeOtherClass:NSObject- (int)getZero;@end@implementationSomeOtherClass- (int)getZero{return0;}@end@interfaceMyClass:NSObject- (int)getZero;@end@implementationMyClass- (int)getZero{return1;}// TODO: Not only we should correctly determine that the type of o at runtime
// is MyClass, but we should also warn about it.
+ (void)testCastToParent{id a =[[selfalloc] init];
SomeOtherClass *o = a;clang_analyzer_eval([o getZero]==0);// expected-warning{{FALSE}}
}@end