]> granicus.if.org Git - clang/commitdiff
[analyzer] Remove recursive visitation in ExprEngine::VisitCallExpr because it isn...
authorTed Kremenek <kremenek@apple.com>
Fri, 29 Jul 2011 21:18:22 +0000 (21:18 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 29 Jul 2011 21:18:22 +0000 (21:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136514 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Core/ExprEngine.cpp

index 080c97c27894f7a365ee2384bda4e533c911c58f..d3332402c654bf1b17d3c3614c73e632c1d9a56b 100644 (file)
@@ -1670,29 +1670,9 @@ void ExprEngine::VisitCallExpr(const CallExpr* CE, ExplodedNode* Pred,
   if (const PointerType *FnTypePtr = FnType->getAs<PointerType>())
     Proto = FnTypePtr->getPointeeType()->getAs<FunctionProtoType>();
 
-  // Should the first argument be evaluated as an lvalue?
-  bool firstArgumentAsLvalue = false;
-  switch (CE->getStmtClass()) {
-    case Stmt::CXXOperatorCallExprClass:
-      firstArgumentAsLvalue = true;
-      break;
-    default:
-      break;
-  }
-  
-  // Evaluate the arguments.
-  ExplodedNodeSet dstArgsEvaluated;
-  evalArguments(CE->arg_begin(), CE->arg_end(), Proto, Pred, dstArgsEvaluated,
-                firstArgumentAsLvalue);
-
-  // Evaluate the callee.
-  ExplodedNodeSet dstCalleeEvaluated;
-  evalCallee(CE, dstArgsEvaluated, dstCalleeEvaluated);
-
   // Perform the previsit of the CallExpr.
   ExplodedNodeSet dstPreVisit;
-  getCheckerManager().runCheckersForPreStmt(dstPreVisit, dstCalleeEvaluated,
-                                            CE, *this);
+  getCheckerManager().runCheckersForPreStmt(dstPreVisit, Pred, CE, *this);
     
   // Now evaluate the call itself.
   class DefaultEval : public GraphExpander {