Lines Matching refs:Call
94 void handleOverloadedOperator(CheckerContext &C, const CallEvent &Call,
96 void handleAdvanceLikeFunction(CheckerContext &C, const CallEvent &Call,
149 void checkPostCall(const CallEvent &Call, CheckerContext &C) const;
168 const ExplodedNode *findCallEnter(const ExplodedNode *Node, const Expr *Call);
172 void IteratorModeling::checkPostCall(const CallEvent &Call, in checkPostCall() argument
175 const auto *Func = dyn_cast_or_null<FunctionDecl>(Call.getDecl()); in checkPostCall()
181 handleOverloadedOperator(C, Call, Op); in checkPostCall()
185 const auto *OrigExpr = Call.getOriginExpr(); in checkPostCall()
189 const AdvanceFn *Handler = AdvanceLikeFunctions.lookup(Call); in checkPostCall()
191 handleAdvanceLikeFunction(C, Call, OrigExpr, Handler); in checkPostCall()
195 if (!isIteratorType(Call.getResultType())) in checkPostCall()
201 if (getIteratorPosition(State, Call.getReturnValue())) in checkPostCall()
205 if (isa<CXXConstructorCall>(&Call) && Call.getNumArgs() == 1) { in checkPostCall()
206 if (const auto *Pos = getIteratorPosition(State, Call.getArgSVal(0))) { in checkPostCall()
207 State = setIteratorPosition(State, Call.getReturnValue(), *Pos); in checkPostCall()
209 State = removeIteratorPosition(State, Call.getArgSVal(0)); in checkPostCall()
221 for (unsigned i = 0; i < Call.getNumArgs(); ++i) { in checkPostCall()
222 if (isIteratorType(Call.getArgExpr(i)->getType()) && in checkPostCall()
223 Call.getArgExpr(i)->getType().getNonReferenceType().getDesugaredType( in checkPostCall()
225 Call.getResultType().getDesugaredType(C.getASTContext()).getTypePtr()) { in checkPostCall()
226 if (const auto *Pos = getIteratorPosition(State, Call.getArgSVal(i))) { in checkPostCall()
227 assignToContainer(C, OrigExpr, Call.getReturnValue(), in checkPostCall()
353 const CallEvent &Call, in handleOverloadedOperator() argument
356 const auto *OrigExpr = Call.getOriginExpr(); in handleOverloadedOperator()
360 if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) { in handleOverloadedOperator()
361 handleComparison(C, OrigExpr, Call.getReturnValue(), in handleOverloadedOperator()
362 InstCall->getCXXThisVal(), Call.getArgSVal(0), Op); in handleOverloadedOperator()
366 handleComparison(C, OrigExpr, Call.getReturnValue(), Call.getArgSVal(0), in handleOverloadedOperator()
367 Call.getArgSVal(1), Op); in handleOverloadedOperator()
370 const auto *OrigExpr = Call.getOriginExpr(); in handleOverloadedOperator()
374 if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) { in handleOverloadedOperator()
375 if (Call.getNumArgs() >= 1 && in handleOverloadedOperator()
376 Call.getArgExpr(0)->getType()->isIntegralOrEnumerationType()) { in handleOverloadedOperator()
377 handleRandomIncrOrDecr(C, OrigExpr, Op, Call.getReturnValue(), in handleOverloadedOperator()
378 InstCall->getCXXThisVal(), Call.getArgSVal(0)); in handleOverloadedOperator()
381 } else if (Call.getNumArgs() >= 2) { in handleOverloadedOperator()
382 const Expr *FirstArg = Call.getArgExpr(0); in handleOverloadedOperator()
383 const Expr *SecondArg = Call.getArgExpr(1); in handleOverloadedOperator()
392 const SVal FirstArg = Call.getArgSVal(0); in handleOverloadedOperator()
393 const SVal SecondArg = Call.getArgSVal(1); in handleOverloadedOperator()
397 handleRandomIncrOrDecr(C, OrigExpr, Op, Call.getReturnValue(), in handleOverloadedOperator()
403 if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) { in handleOverloadedOperator()
404 handleIncrement(C, Call.getReturnValue(), InstCall->getCXXThisVal(), in handleOverloadedOperator()
405 Call.getNumArgs()); in handleOverloadedOperator()
409 handleIncrement(C, Call.getReturnValue(), Call.getArgSVal(0), in handleOverloadedOperator()
410 Call.getNumArgs()); in handleOverloadedOperator()
413 if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) { in handleOverloadedOperator()
414 handleDecrement(C, Call.getReturnValue(), InstCall->getCXXThisVal(), in handleOverloadedOperator()
415 Call.getNumArgs()); in handleOverloadedOperator()
419 handleDecrement(C, Call.getReturnValue(), Call.getArgSVal(0), in handleOverloadedOperator()
420 Call.getNumArgs()); in handleOverloadedOperator()
427 const CallEvent &Call, in handleAdvanceLikeFunction() argument
431 (this->**Handler)(C, OrigExpr, Call.getReturnValue(), in handleAdvanceLikeFunction()
432 Call.getArgSVal(0), Call.getArgSVal(1)); in handleAdvanceLikeFunction()
438 const auto *IdInfo = cast<FunctionDecl>(Call.getDecl())->getIdentifier(); in handleAdvanceLikeFunction()
441 if (noChangeInAdvance(C, Call.getArgSVal(0), OrigExpr)) { in handleAdvanceLikeFunction()
442 (this->**Handler)(C, OrigExpr, Call.getReturnValue(), in handleAdvanceLikeFunction()
443 Call.getArgSVal(0), Call.getArgSVal(1)); in handleAdvanceLikeFunction()
834 const ExplodedNode *findCallEnter(const ExplodedNode *Node, const Expr *Call) { in findCallEnter() argument
838 if (Enter->getCallExpr() == Call) in findCallEnter()