Lines Matching refs:Call
177 SVal getStreamArg(const FnDescription *Desc, const CallEvent &Call) { in getStreamArg() argument
180 return Call.getArgSVal(Desc->StreamArgNo); in getStreamArg()
209 class StreamChecker : public Checker<check::PreCall, eval::Call,
224 void checkPreCall(const CallEvent &Call, CheckerContext &C) const;
225 bool evalCall(const CallEvent &Call, CheckerContext &C) const;
229 const CallEvent *Call,
281 void evalFopen(const FnDescription *Desc, const CallEvent &Call,
284 void preFreopen(const FnDescription *Desc, const CallEvent &Call,
286 void evalFreopen(const FnDescription *Desc, const CallEvent &Call,
289 void evalFclose(const FnDescription *Desc, const CallEvent &Call,
292 void preFread(const FnDescription *Desc, const CallEvent &Call,
295 void preFwrite(const FnDescription *Desc, const CallEvent &Call,
298 void evalFreadFwrite(const FnDescription *Desc, const CallEvent &Call,
301 void preFseek(const FnDescription *Desc, const CallEvent &Call,
303 void evalFseek(const FnDescription *Desc, const CallEvent &Call,
306 void preDefault(const FnDescription *Desc, const CallEvent &Call,
309 void evalClearerr(const FnDescription *Desc, const CallEvent &Call,
312 void evalFeofFerror(const FnDescription *Desc, const CallEvent &Call,
316 void evalSetFeofFerror(const FnDescription *Desc, const CallEvent &Call,
366 const FnDescription *lookupFn(const CallEvent &Call) const { in lookupFn()
369 if (!Call.isGlobalCFunction()) in lookupFn()
371 for (auto P : Call.parameters()) { in lookupFn()
377 return FnDescriptions.lookup(Call); in lookupFn()
458 void StreamChecker::checkPreCall(const CallEvent &Call, in checkPreCall() argument
460 const FnDescription *Desc = lookupFn(Call); in checkPreCall()
464 Desc->PreFn(this, Desc, Call, C); in checkPreCall()
467 bool StreamChecker::evalCall(const CallEvent &Call, CheckerContext &C) const { in evalCall() argument
468 const FnDescription *Desc = lookupFn(Call); in evalCall()
470 Desc = FnTestDescriptions.lookup(Call); in evalCall()
474 Desc->EvalFn(this, Desc, Call, C); in evalCall()
479 void StreamChecker::evalFopen(const FnDescription *Desc, const CallEvent &Call, in evalFopen() argument
482 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFopen()
508 void StreamChecker::preFreopen(const FnDescription *Desc, const CallEvent &Call, in preFreopen() argument
512 State = ensureStreamNonNull(getStreamArg(Desc, Call), in preFreopen()
513 Call.getArgExpr(Desc->StreamArgNo), C, State); in preFreopen()
521 const CallEvent &Call, in evalFreopen() argument
525 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFreopen()
530 getStreamArg(Desc, Call).getAs<DefinedSVal>(); in evalFreopen()
566 void StreamChecker::evalFclose(const FnDescription *Desc, const CallEvent &Call, in evalFclose() argument
569 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFclose()
587 void StreamChecker::preFread(const FnDescription *Desc, const CallEvent &Call, in preFread() argument
590 SVal StreamVal = getStreamArg(Desc, Call); in preFread()
591 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFread()
612 void StreamChecker::preFwrite(const FnDescription *Desc, const CallEvent &Call, in preFwrite() argument
615 SVal StreamVal = getStreamArg(Desc, Call); in preFwrite()
616 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFwrite()
631 const CallEvent &Call, CheckerContext &C, in evalFreadFwrite() argument
634 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFreadFwrite()
638 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFreadFwrite()
642 Optional<NonLoc> SizeVal = Call.getArgSVal(1).getAs<NonLoc>(); in evalFreadFwrite()
645 Optional<NonLoc> NMembVal = Call.getArgSVal(2).getAs<NonLoc>(); in evalFreadFwrite()
710 void StreamChecker::preFseek(const FnDescription *Desc, const CallEvent &Call, in preFseek() argument
713 SVal StreamVal = getStreamArg(Desc, Call); in preFseek()
714 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFseek()
721 State = ensureFseekWhenceCorrect(Call.getArgSVal(2), C, State); in preFseek()
728 void StreamChecker::evalFseek(const FnDescription *Desc, const CallEvent &Call, in evalFseek() argument
731 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFseek()
735 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFseek()
770 const CallEvent &Call, in evalClearerr() argument
773 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalClearerr()
791 const CallEvent &Call, CheckerContext &C, in evalFeofFerror() argument
794 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFeofFerror()
798 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFeofFerror()
830 void StreamChecker::preDefault(const FnDescription *Desc, const CallEvent &Call, in preDefault() argument
833 SVal StreamVal = getStreamArg(Desc, Call); in preDefault()
834 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preDefault()
846 const CallEvent &Call, CheckerContext &C, in evalSetFeofFerror() argument
849 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalSetFeofFerror()
1079 const CallEvent *Call, PointerEscapeKind Kind) const { in checkPointerEscape() argument
1083 if (Kind == PSK_DirectEscapeOnCall && Call->isInSystemHeader()) in checkPointerEscape()