From 994a09bdd94aa683373835bd6c152d91bd54603d Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Mon, 25 Feb 2008 21:16:03 +0000 Subject: [PATCH] Better handling of calls to functions via function pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47562 91177308-0d34-0410-b5e6-96231b3b80d8 --- Analysis/GRExprEngine.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Analysis/GRExprEngine.cpp b/Analysis/GRExprEngine.cpp index dedeb7b1b7..4e6d1a3f6b 100644 --- a/Analysis/GRExprEngine.cpp +++ b/Analysis/GRExprEngine.cpp @@ -429,14 +429,16 @@ void GRExprEngine::VisitCall(CallExpr* CE, NodeTy* Pred, // If we reach here we have processed all of the arguments. Evaluate // the callee expression. - NodeSet DstTmp; - Visit(CE->getCallee(), Pred, DstTmp); + NodeSet DstTmp; + Expr* Callee = CE->getCallee()->IgnoreParenCasts(); + + VisitLVal(Callee, Pred, DstTmp); // Finally, evaluate the function call. for (NodeSet::iterator DI = DstTmp.begin(), DE = DstTmp.end(); DI!=DE; ++DI) { StateTy St = (*DI)->getState(); - RVal L = GetLVal(St, CE->getCallee()); + RVal L = GetLVal(St, Callee); // Check for uninitialized control-flow. -- 2.50.1