forked from OSchip/llvm-project
				
			[analyzer] Remove recursive visitation in ExprEngine::VisitCallExpr because it isn't needed anymore.
llvm-svn: 136514
This commit is contained in:
		
							parent
							
								
									22a1e65532
								
							
						
					
					
						commit
						298e5cc7f4
					
				| 
						 | 
					@ -1670,29 +1670,9 @@ void ExprEngine::VisitCallExpr(const CallExpr* CE, ExplodedNode* Pred,
 | 
				
			||||||
  if (const PointerType *FnTypePtr = FnType->getAs<PointerType>())
 | 
					  if (const PointerType *FnTypePtr = FnType->getAs<PointerType>())
 | 
				
			||||||
    Proto = FnTypePtr->getPointeeType()->getAs<FunctionProtoType>();
 | 
					    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.
 | 
					  // Perform the previsit of the CallExpr.
 | 
				
			||||||
  ExplodedNodeSet dstPreVisit;
 | 
					  ExplodedNodeSet dstPreVisit;
 | 
				
			||||||
  getCheckerManager().runCheckersForPreStmt(dstPreVisit, dstCalleeEvaluated,
 | 
					  getCheckerManager().runCheckersForPreStmt(dstPreVisit, Pred, CE, *this);
 | 
				
			||||||
                                            CE, *this);
 | 
					 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
  // Now evaluate the call itself.
 | 
					  // Now evaluate the call itself.
 | 
				
			||||||
  class DefaultEval : public GraphExpander {
 | 
					  class DefaultEval : public GraphExpander {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue