Better handling of calls to functions via function pointers.

llvm-svn: 47562
This commit is contained in:
Ted Kremenek 2008-02-25 21:16:03 +00:00
parent 1f372edd97
commit 3a6fd9c177
1 changed files with 5 additions and 3 deletions

View File

@ -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.