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,
226 void checkPreCall(const CallEvent &Call, CheckerContext &C) const;
227 bool evalCall(const CallEvent &Call, CheckerContext &C) const;
231 const CallEvent *Call,
331 void evalFopen(const FnDescription *Desc, const CallEvent &Call,
334 void preFreopen(const FnDescription *Desc, const CallEvent &Call,
336 void evalFreopen(const FnDescription *Desc, const CallEvent &Call,
339 void evalFclose(const FnDescription *Desc, const CallEvent &Call,
342 void preReadWrite(const FnDescription *Desc, const CallEvent &Call,
345 void evalFreadFwrite(const FnDescription *Desc, const CallEvent &Call,
348 void evalFgetx(const FnDescription *Desc, const CallEvent &Call,
351 void evalFputx(const FnDescription *Desc, const CallEvent &Call,
354 void evalFprintf(const FnDescription *Desc, const CallEvent &Call,
357 void evalFscanf(const FnDescription *Desc, const CallEvent &Call,
360 void evalUngetc(const FnDescription *Desc, const CallEvent &Call,
363 void evalGetdelim(const FnDescription *Desc, const CallEvent &Call,
366 void preFseek(const FnDescription *Desc, const CallEvent &Call,
368 void evalFseek(const FnDescription *Desc, const CallEvent &Call,
371 void evalFgetpos(const FnDescription *Desc, const CallEvent &Call,
374 void evalFsetpos(const FnDescription *Desc, const CallEvent &Call,
377 void evalFtell(const FnDescription *Desc, const CallEvent &Call,
380 void evalRewind(const FnDescription *Desc, const CallEvent &Call,
383 void preDefault(const FnDescription *Desc, const CallEvent &Call,
386 void evalClearerr(const FnDescription *Desc, const CallEvent &Call,
389 void evalFeofFerror(const FnDescription *Desc, const CallEvent &Call,
393 void evalSetFeofFerror(const FnDescription *Desc, const CallEvent &Call,
397 void preFflush(const FnDescription *Desc, const CallEvent &Call,
400 void evalFflush(const FnDescription *Desc, const CallEvent &Call,
449 const FnDescription *lookupFn(const CallEvent &Call) const { in lookupFn()
452 if (!Call.isGlobalCFunction()) in lookupFn()
454 for (auto *P : Call.parameters()) { in lookupFn()
460 return FnDescriptions.lookup(Call); in lookupFn()
551 void StreamChecker::checkPreCall(const CallEvent &Call, in checkPreCall() argument
555 const FnDescription *Desc = lookupFn(Call); in checkPreCall()
559 Desc->PreFn(this, Desc, Call, C); in checkPreCall()
562 bool StreamChecker::evalCall(const CallEvent &Call, CheckerContext &C) const { in evalCall() argument
563 const FnDescription *Desc = lookupFn(Call); in evalCall()
565 Desc = FnTestDescriptions.lookup(Call); in evalCall()
569 Desc->EvalFn(this, Desc, Call, C); in evalCall()
574 void StreamChecker::evalFopen(const FnDescription *Desc, const CallEvent &Call, in evalFopen() argument
577 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFopen()
603 void StreamChecker::preFreopen(const FnDescription *Desc, const CallEvent &Call, in preFreopen() argument
607 State = ensureStreamNonNull(getStreamArg(Desc, Call), in preFreopen()
608 Call.getArgExpr(Desc->StreamArgNo), C, State); in preFreopen()
616 const CallEvent &Call, in evalFreopen() argument
620 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFreopen()
625 getStreamArg(Desc, Call).getAs<DefinedSVal>(); in evalFreopen()
661 void StreamChecker::evalFclose(const FnDescription *Desc, const CallEvent &Call, in evalFclose() argument
664 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFclose()
672 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFclose()
696 const CallEvent &Call, CheckerContext &C, in preReadWrite() argument
699 SVal StreamVal = getStreamArg(Desc, Call); in preReadWrite()
700 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preReadWrite()
727 const CallEvent &Call, CheckerContext &C, in evalFreadFwrite() argument
730 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFreadFwrite()
734 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFreadFwrite()
738 std::optional<NonLoc> SizeVal = Call.getArgSVal(1).getAs<NonLoc>(); in evalFreadFwrite()
741 std::optional<NonLoc> NMembVal = Call.getArgSVal(2).getAs<NonLoc>(); in evalFreadFwrite()
806 void StreamChecker::evalFgetx(const FnDescription *Desc, const CallEvent &Call, in evalFgetx() argument
809 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFgetx()
813 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFgetx()
860 Call.getArgSVal(0).getAs<DefinedSVal>(); in evalFgetx()
892 void StreamChecker::evalFputx(const FnDescription *Desc, const CallEvent &Call, in evalFputx() argument
895 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFputx()
899 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFputx()
914 std::optional<NonLoc> PutVal = Call.getArgSVal(0).getAs<NonLoc>(); in evalFputx()
951 const CallEvent &Call, in evalFprintf() argument
954 if (Call.getNumArgs() < 2) in evalFprintf()
956 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFprintf()
960 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFprintf()
993 void StreamChecker::evalFscanf(const FnDescription *Desc, const CallEvent &Call, in evalFscanf() argument
996 if (Call.getNumArgs() < 2) in evalFscanf()
998 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFscanf()
1002 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFscanf()
1056 void StreamChecker::evalUngetc(const FnDescription *Desc, const CallEvent &Call, in evalUngetc() argument
1059 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalUngetc()
1063 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalUngetc()
1074 std::optional<NonLoc> PutVal = Call.getArgSVal(0).getAs<NonLoc>(); in evalUngetc()
1096 const CallEvent &Call, in evalGetdelim() argument
1099 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalGetdelim()
1103 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalGetdelim()
1151 void StreamChecker::preFseek(const FnDescription *Desc, const CallEvent &Call, in preFseek() argument
1154 SVal StreamVal = getStreamArg(Desc, Call); in preFseek()
1155 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFseek()
1162 State = ensureFseekWhenceCorrect(Call.getArgSVal(2), C, State); in preFseek()
1169 void StreamChecker::evalFseek(const FnDescription *Desc, const CallEvent &Call, in evalFseek() argument
1172 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFseek()
1176 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFseek()
1185 C.getSValBuilder().getKnownValue(State, Call.getArgSVal(1)); in evalFseek()
1187 C.getSValBuilder().getKnownValue(State, Call.getArgSVal(2)); in evalFseek()
1219 const CallEvent &Call, in evalFgetpos() argument
1222 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFgetpos()
1230 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFgetpos()
1248 const CallEvent &Call, in evalFsetpos() argument
1251 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFsetpos()
1259 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFsetpos()
1285 void StreamChecker::evalFtell(const FnDescription *Desc, const CallEvent &Call, in evalFtell() argument
1288 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFtell()
1295 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFtell()
1304 SVB.evalBinOp(State, BO_GE, RetVal, SVB.makeZeroVal(Call.getResultType()), in evalFtell()
1314 CE, C.getLocationContext(), SVB.makeIntVal(-1, Call.getResultType())); in evalFtell()
1323 void StreamChecker::evalRewind(const FnDescription *Desc, const CallEvent &Call, in evalRewind() argument
1326 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalRewind()
1334 auto *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalRewind()
1347 const CallEvent &Call, in evalClearerr() argument
1350 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalClearerr()
1368 const CallEvent &Call, CheckerContext &C, in evalFeofFerror() argument
1371 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFeofFerror()
1375 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFeofFerror()
1407 void StreamChecker::preDefault(const FnDescription *Desc, const CallEvent &Call, in preDefault() argument
1410 SVal StreamVal = getStreamArg(Desc, Call); in preDefault()
1411 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preDefault()
1423 const CallEvent &Call, CheckerContext &C, in evalSetFeofFerror() argument
1426 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalSetFeofFerror()
1435 void StreamChecker::preFflush(const FnDescription *Desc, const CallEvent &Call, in preFflush() argument
1438 SVal StreamVal = getStreamArg(Desc, Call); in preFflush()
1450 void StreamChecker::evalFflush(const FnDescription *Desc, const CallEvent &Call, in evalFflush() argument
1453 SVal StreamVal = getStreamArg(Desc, Call); in evalFflush()
1469 const CallExpr *CE = dyn_cast_or_null<CallExpr>(Call.getOriginExpr()); in evalFflush()
1736 const CallEvent *Call, PointerEscapeKind Kind) const { in checkPointerEscape() argument
1740 if (Kind == PSK_DirectEscapeOnCall && Call->isInSystemHeader()) in checkPointerEscape()