From 979f098cfa808cc9236b39658cc3757a39dfa459 Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Fri, 27 Jul 2012 00:47:52 +0000 Subject: [PATCH] [analyzer] Use a stack-based local AGAIN to fix the build for real. It's a good thing CallEvents aren't created all over the place yet. I checked all the uses this time and the private copy constructor /really/ shouldn't cause any more problems. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160845 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../Core/ExprEngineCallAndReturn.cpp | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp b/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp index a83fb54144..0392a2490f 100644 --- a/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp +++ b/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp @@ -400,21 +400,26 @@ void ExprEngine::VisitCallExpr(const CallExpr *CE, ExplodedNode *Pred, // Evaluate the call. switch (K) { - case CE_Function: - evalCall(dstCallEvaluated, *I, FunctionCall(CE, State, LCtx)); + case CE_Function: { + FunctionCall Call(CE, State, LCtx); + evalCall(dstCallEvaluated, *I, Call); break; - case CE_CXXMember: - evalCall(dstCallEvaluated, *I, CXXMemberCall(cast(CE), - State, LCtx)); + } + case CE_CXXMember: { + CXXMemberCall Call(cast(CE), State, LCtx); + evalCall(dstCallEvaluated, *I, Call); break; - case CE_CXXMemberOperator: - evalCall(dstCallEvaluated, *I, - CXXMemberOperatorCall(cast(CE), - State, LCtx)); + } + case CE_CXXMemberOperator: { + CXXMemberOperatorCall Call(cast(CE), State, LCtx); + evalCall(dstCallEvaluated, *I, Call); break; - case CE_Block: - evalCall(dstCallEvaluated, *I, BlockCall(CE, State, LCtx)); + } + case CE_Block: { + BlockCall Call(CE, State, LCtx); + evalCall(dstCallEvaluated, *I, Call); break; + } default: llvm_unreachable("Non-CallExpr CallEventKind"); } -- 2.40.0