From: Anna Zaks Date: Tue, 13 Nov 2012 00:13:44 +0000 (+0000) Subject: [analyzer] Address Jordan's feedback for r167780. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bae930d4c69a624881e66f1628ee615e149362f7;p=clang [analyzer] Address Jordan's feedback for r167780. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167790 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp b/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp index 2e47a9a61c..3ead0817f7 100644 --- a/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp +++ b/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp @@ -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()) {