Lines Matching refs:Call

179 SVal getStreamArg(const FnDescription *Desc, const CallEvent &Call) {  in getStreamArg()  argument
182 return Call.getArgSVal(Desc->StreamArgNo); in getStreamArg()
211 class StreamChecker : public Checker<check::PreCall, eval::Call,
225 void checkPreCall(const CallEvent &Call, CheckerContext &C) const;
226 bool evalCall(const CallEvent &Call, CheckerContext &C) const;
230 const CallEvent *Call,
289 void evalFopen(const FnDescription *Desc, const CallEvent &Call,
292 void preFreopen(const FnDescription *Desc, const CallEvent &Call,
294 void evalFreopen(const FnDescription *Desc, const CallEvent &Call,
297 void evalFclose(const FnDescription *Desc, const CallEvent &Call,
300 void preFread(const FnDescription *Desc, const CallEvent &Call,
303 void preFwrite(const FnDescription *Desc, const CallEvent &Call,
306 void evalFreadFwrite(const FnDescription *Desc, const CallEvent &Call,
309 void preFseek(const FnDescription *Desc, const CallEvent &Call,
311 void evalFseek(const FnDescription *Desc, const CallEvent &Call,
314 void evalFgetpos(const FnDescription *Desc, const CallEvent &Call,
317 void evalFsetpos(const FnDescription *Desc, const CallEvent &Call,
320 void evalFtell(const FnDescription *Desc, const CallEvent &Call,
323 void evalRewind(const FnDescription *Desc, const CallEvent &Call,
326 void preDefault(const FnDescription *Desc, const CallEvent &Call,
329 void evalClearerr(const FnDescription *Desc, const CallEvent &Call,
332 void evalFeofFerror(const FnDescription *Desc, const CallEvent &Call,
336 void evalSetFeofFerror(const FnDescription *Desc, const CallEvent &Call,
386 const FnDescription *lookupFn(const CallEvent &Call) const { in lookupFn()
389 if (!Call.isGlobalCFunction()) in lookupFn()
391 for (auto *P : Call.parameters()) { in lookupFn()
397 return FnDescriptions.lookup(Call); in lookupFn()
488 void StreamChecker::checkPreCall(const CallEvent &Call, in checkPreCall() argument
492 const FnDescription *Desc = lookupFn(Call); in checkPreCall()
496 Desc->PreFn(this, Desc, Call, C); in checkPreCall()
499 bool StreamChecker::evalCall(const CallEvent &Call, CheckerContext &C) const { in evalCall() argument
500 const FnDescription *Desc = lookupFn(Call); in evalCall()
502 Desc = FnTestDescriptions.lookup(Call); in evalCall()
506 Desc->EvalFn(this, Desc, Call, C); in evalCall()
511 void StreamChecker::evalFopen(const FnDescription *Desc, const CallEvent &Call, in evalFopen() argument
514 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFopen()
540 void StreamChecker::preFreopen(const FnDescription *Desc, const CallEvent &Call, in preFreopen() argument
544 State = ensureStreamNonNull(getStreamArg(Desc, Call), in preFreopen()
545 Call.getArgExpr(Desc->StreamArgNo), C, State); in preFreopen()
553 const CallEvent &Call, in evalFreopen() argument
557 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFreopen()
562 getStreamArg(Desc, Call).getAs<DefinedSVal>(); in evalFreopen()
598 void StreamChecker::evalFclose(const FnDescription *Desc, const CallEvent &Call, in evalFclose() argument
601 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFclose()
609 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFclose()
632 void StreamChecker::preFread(const FnDescription *Desc, const CallEvent &Call, in preFread() argument
635 SVal StreamVal = getStreamArg(Desc, Call); in preFread()
636 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFread()
657 void StreamChecker::preFwrite(const FnDescription *Desc, const CallEvent &Call, in preFwrite() argument
660 SVal StreamVal = getStreamArg(Desc, Call); in preFwrite()
661 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFwrite()
676 const CallEvent &Call, CheckerContext &C, in evalFreadFwrite() argument
679 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFreadFwrite()
683 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFreadFwrite()
687 std::optional<NonLoc> SizeVal = Call.getArgSVal(1).getAs<NonLoc>(); in evalFreadFwrite()
690 std::optional<NonLoc> NMembVal = Call.getArgSVal(2).getAs<NonLoc>(); in evalFreadFwrite()
755 void StreamChecker::preFseek(const FnDescription *Desc, const CallEvent &Call, in preFseek() argument
758 SVal StreamVal = getStreamArg(Desc, Call); in preFseek()
759 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFseek()
766 State = ensureFseekWhenceCorrect(Call.getArgSVal(2), C, State); in preFseek()
773 void StreamChecker::evalFseek(const FnDescription *Desc, const CallEvent &Call, in evalFseek() argument
776 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFseek()
780 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFseek()
815 const CallEvent &Call, in evalFgetpos() argument
818 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFgetpos()
826 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFgetpos()
844 const CallEvent &Call, in evalFsetpos() argument
847 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFsetpos()
855 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFsetpos()
881 void StreamChecker::evalFtell(const FnDescription *Desc, const CallEvent &Call, in evalFtell() argument
884 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFtell()
891 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFtell()
916 void StreamChecker::evalRewind(const FnDescription *Desc, const CallEvent &Call, in evalRewind() argument
919 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalRewind()
927 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalRewind()
940 const CallEvent &Call, in evalClearerr() argument
943 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalClearerr()
961 const CallEvent &Call, CheckerContext &C, in evalFeofFerror() argument
964 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFeofFerror()
968 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFeofFerror()
1000 void StreamChecker::preDefault(const FnDescription *Desc, const CallEvent &Call, in preDefault() argument
1003 SVal StreamVal = getStreamArg(Desc, Call); in preDefault()
1004 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preDefault()
1016 const CallEvent &Call, CheckerContext &C, in evalSetFeofFerror() argument
1019 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalSetFeofFerror()
1248 const CallEvent *Call, PointerEscapeKind Kind) const { in checkPointerEscape() argument
1252 if (Kind == PSK_DirectEscapeOnCall && Call->isInSystemHeader()) in checkPointerEscape()