Lines Matching refs:Call

176 SVal getStreamArg(const FnDescription *Desc, const CallEvent &Call) {  in getStreamArg()  argument
179 return Call.getArgSVal(Desc->StreamArgNo); in getStreamArg()
208 class StreamChecker : public Checker<check::PreCall, eval::Call,
223 void checkPreCall(const CallEvent &Call, CheckerContext &C) const;
224 bool evalCall(const CallEvent &Call, CheckerContext &C) const;
228 const CallEvent *Call,
280 void evalFopen(const FnDescription *Desc, const CallEvent &Call,
283 void preFreopen(const FnDescription *Desc, const CallEvent &Call,
285 void evalFreopen(const FnDescription *Desc, const CallEvent &Call,
288 void evalFclose(const FnDescription *Desc, const CallEvent &Call,
291 void preFread(const FnDescription *Desc, const CallEvent &Call,
294 void preFwrite(const FnDescription *Desc, const CallEvent &Call,
297 void evalFreadFwrite(const FnDescription *Desc, const CallEvent &Call,
300 void preFseek(const FnDescription *Desc, const CallEvent &Call,
302 void evalFseek(const FnDescription *Desc, const CallEvent &Call,
305 void preDefault(const FnDescription *Desc, const CallEvent &Call,
308 void evalClearerr(const FnDescription *Desc, const CallEvent &Call,
311 void evalFeofFerror(const FnDescription *Desc, const CallEvent &Call,
315 void evalSetFeofFerror(const FnDescription *Desc, const CallEvent &Call,
365 const FnDescription *lookupFn(const CallEvent &Call) const { in lookupFn()
368 if (!Call.isGlobalCFunction()) in lookupFn()
370 for (auto P : Call.parameters()) { in lookupFn()
376 return FnDescriptions.lookup(Call); in lookupFn()
457 void StreamChecker::checkPreCall(const CallEvent &Call, in checkPreCall() argument
459 const FnDescription *Desc = lookupFn(Call); in checkPreCall()
463 Desc->PreFn(this, Desc, Call, C); in checkPreCall()
466 bool StreamChecker::evalCall(const CallEvent &Call, CheckerContext &C) const { in evalCall() argument
467 const FnDescription *Desc = lookupFn(Call); in evalCall()
469 Desc = FnTestDescriptions.lookup(Call); in evalCall()
473 Desc->EvalFn(this, Desc, Call, C); in evalCall()
478 void StreamChecker::evalFopen(const FnDescription *Desc, const CallEvent &Call, in evalFopen() argument
481 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFopen()
507 void StreamChecker::preFreopen(const FnDescription *Desc, const CallEvent &Call, in preFreopen() argument
511 State = ensureStreamNonNull(getStreamArg(Desc, Call), in preFreopen()
512 Call.getArgExpr(Desc->StreamArgNo), C, State); in preFreopen()
520 const CallEvent &Call, in evalFreopen() argument
524 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFreopen()
529 getStreamArg(Desc, Call).getAs<DefinedSVal>(); in evalFreopen()
564 void StreamChecker::evalFclose(const FnDescription *Desc, const CallEvent &Call, in evalFclose() argument
567 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFclose()
585 void StreamChecker::preFread(const FnDescription *Desc, const CallEvent &Call, in preFread() argument
588 SVal StreamVal = getStreamArg(Desc, Call); in preFread()
589 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFread()
610 void StreamChecker::preFwrite(const FnDescription *Desc, const CallEvent &Call, in preFwrite() argument
613 SVal StreamVal = getStreamArg(Desc, Call); in preFwrite()
614 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFwrite()
629 const CallEvent &Call, CheckerContext &C, in evalFreadFwrite() argument
632 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFreadFwrite()
636 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFreadFwrite()
640 Optional<NonLoc> SizeVal = Call.getArgSVal(1).getAs<NonLoc>(); in evalFreadFwrite()
643 Optional<NonLoc> NMembVal = Call.getArgSVal(2).getAs<NonLoc>(); in evalFreadFwrite()
713 void StreamChecker::preFseek(const FnDescription *Desc, const CallEvent &Call, in preFseek() argument
716 SVal StreamVal = getStreamArg(Desc, Call); in preFseek()
717 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFseek()
724 State = ensureFseekWhenceCorrect(Call.getArgSVal(2), C, State); in preFseek()
731 void StreamChecker::evalFseek(const FnDescription *Desc, const CallEvent &Call, in evalFseek() argument
734 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFseek()
738 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFseek()
773 const CallEvent &Call, in evalClearerr() argument
776 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalClearerr()
794 const CallEvent &Call, CheckerContext &C, in evalFeofFerror() argument
797 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFeofFerror()
801 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFeofFerror()
833 void StreamChecker::preDefault(const FnDescription *Desc, const CallEvent &Call, in preDefault() argument
836 SVal StreamVal = getStreamArg(Desc, Call); in preDefault()
837 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preDefault()
849 const CallEvent &Call, CheckerContext &C, in evalSetFeofFerror() argument
852 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalSetFeofFerror()
1082 const CallEvent *Call, PointerEscapeKind Kind) const { in checkPointerEscape() argument
1086 if (Kind == PSK_DirectEscapeOnCall && Call->isInSystemHeader()) in checkPointerEscape()