[analyzer] Address Jordan's feedback for r167780.

llvm-svn: 167790
This commit is contained in:
Anna Zaks 2012-11-13 00:13:44 +00:00
parent e6ee671e16
commit abdc72d970
1 changed files with 5 additions and 4 deletions

View File

@ -191,12 +191,13 @@ void ExprEngine::removeDeadOnEndOfFunction(NodeBuilderContext& BC,
currBldrCtx = 0;
}
static bool isDifferentDeclUsedAtRuntime(CallEventRef<> Call,
static bool wasDifferentDeclUsedForInlining(CallEventRef<> Call,
const StackFrameContext *calleeCtx) {
const Decl *RuntimeCallee = calleeCtx->getDecl();
const Decl *StaticDecl = Call->getDecl();
if (!RuntimeCallee || !StaticDecl)
return false;
assert(RuntimeCallee);
if (!StaticDecl)
return true;
return RuntimeCallee->getCanonicalDecl() != StaticDecl->getCanonicalDecl();
}
@ -240,7 +241,7 @@ void ExprEngine::processCallExit(ExplodedNode *CEBNode) {
SVal V = state->getSVal(RS, LCtx);
// Ensure that the return type matches the type of the returned Expr.
if (isDifferentDeclUsedAtRuntime(Call, calleeCtx)) {
if (wasDifferentDeclUsedForInlining(Call, calleeCtx)) {
QualType ReturnedTy =
CallEvent::getDeclaredResultType(calleeCtx->getDecl());
if (!ReturnedTy.isNull()) {