Lines Matching refs:Desc

179 SVal getStreamArg(const FnDescription *Desc, const CallEvent &Call) {  in getStreamArg()  argument
180 assert(Desc && Desc->StreamArgNo != ArgNone && in getStreamArg()
182 return Call.getArgSVal(Desc->StreamArgNo); in getStreamArg()
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,
555 const FnDescription *Desc = lookupFn(Call); in checkPreCall() local
556 if (!Desc || !Desc->PreFn) in checkPreCall()
559 Desc->PreFn(this, Desc, Call, C); in checkPreCall()
563 const FnDescription *Desc = lookupFn(Call); in evalCall() local
564 if (!Desc && TestMode) in evalCall()
565 Desc = FnTestDescriptions.lookup(Call); in evalCall()
566 if (!Desc || !Desc->EvalFn) in evalCall()
569 Desc->EvalFn(this, Desc, Call, C); in evalCall()
574 void StreamChecker::evalFopen(const FnDescription *Desc, const CallEvent &Call, in evalFopen() argument
594 StateNotNull->set<StreamMap>(RetSym, StreamState::getOpened(Desc)); in evalFopen()
596 StateNull->set<StreamMap>(RetSym, StreamState::getOpenFailed(Desc)); 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()
615 void StreamChecker::evalFreopen(const FnDescription *Desc, in evalFreopen() argument
625 getStreamArg(Desc, Call).getAs<DefinedSVal>(); in evalFreopen()
652 StateRetNotNull->set<StreamMap>(StreamSym, StreamState::getOpened(Desc)); in evalFreopen()
654 StateRetNull->set<StreamMap>(StreamSym, StreamState::getOpenFailed(Desc)); in evalFreopen()
661 void StreamChecker::evalFclose(const FnDescription *Desc, const CallEvent &Call, in evalFclose() argument
664 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFclose()
681 State = State->set<StreamMap>(Sym, StreamState::getClosed(Desc)); in evalFclose()
695 void StreamChecker::preReadWrite(const FnDescription *Desc, in preReadWrite() argument
699 SVal StreamVal = getStreamArg(Desc, Call); in preReadWrite()
700 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preReadWrite()
726 void StreamChecker::evalFreadFwrite(const FnDescription *Desc, in evalFreadFwrite() argument
730 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFreadFwrite()
772 StateNotFailed->set<StreamMap>(StreamSym, StreamState::getOpened(Desc)); in evalFreadFwrite()
798 StreamState NewSS = StreamState::getOpened(Desc, NewES, !NewES.isFEof()); in evalFreadFwrite()
806 void StreamChecker::evalFgetx(const FnDescription *Desc, const CallEvent &Call, in evalFgetx() argument
809 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFgetx()
866 StreamSym, StreamState::getOpened(Desc)); in evalFgetx()
884 StreamState NewSS = StreamState::getOpened(Desc, NewES, !NewES.isFEof()); in evalFgetx()
892 void StreamChecker::evalFputx(const FnDescription *Desc, const CallEvent &Call, in evalFputx() argument
895 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFputx()
920 StateNotFailed->set<StreamMap>(StreamSym, StreamState::getOpened(Desc)); in evalFputx()
938 StateNotFailed->set<StreamMap>(StreamSym, StreamState::getOpened(Desc)); in evalFputx()
945 StreamState NewSS = StreamState::getOpened(Desc, ErrorFError, true); in evalFputx()
950 void StreamChecker::evalFprintf(const FnDescription *Desc, in evalFprintf() argument
956 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFprintf()
983 StateNotFailed->set<StreamMap>(StreamSym, StreamState::getOpened(Desc)); in evalFprintf()
989 StreamSym, StreamState::getOpened(Desc, ErrorFError, true)); in evalFprintf()
993 void StreamChecker::evalFscanf(const FnDescription *Desc, const CallEvent &Call, in evalFscanf() argument
998 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFscanf()
1048 StreamState NewSS = StreamState::getOpened(Desc, NewES, !NewES.isFEof()); in evalFscanf()
1056 void StreamChecker::evalUngetc(const FnDescription *Desc, const CallEvent &Call, in evalUngetc() argument
1059 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalUngetc()
1080 StateNotFailed->set<StreamMap>(StreamSym, StreamState::getOpened(Desc)); in evalUngetc()
1091 StateFailed->set<StreamMap>(StreamSym, StreamState::getOpened(Desc)); in evalUngetc()
1095 void StreamChecker::evalGetdelim(const FnDescription *Desc, in evalGetdelim() argument
1099 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalGetdelim()
1143 StreamState NewSS = StreamState::getOpened(Desc, NewES, !NewES.isFEof()); 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()
1169 void StreamChecker::evalFseek(const FnDescription *Desc, const CallEvent &Call, in evalFseek() argument
1172 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFseek()
1202 StateNotFailed->set<StreamMap>(StreamSym, StreamState::getOpened(Desc)); in evalFseek()
1212 StreamSym, StreamState::getOpened(Desc, NewErrS, true)); in evalFseek()
1218 void StreamChecker::evalFgetpos(const FnDescription *Desc, in evalFgetpos() argument
1222 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFgetpos()
1247 void StreamChecker::evalFsetpos(const FnDescription *Desc, in evalFsetpos() argument
1251 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFsetpos()
1272 StreamSym, StreamState::getOpened(Desc, ErrorNone, false)); in evalFsetpos()
1279 StreamSym, StreamState::getOpened(Desc, ErrorNone | ErrorFError, true)); in evalFsetpos()
1285 void StreamChecker::evalFtell(const FnDescription *Desc, const CallEvent &Call, in evalFtell() argument
1288 SymbolRef Sym = getStreamArg(Desc, Call).getAsSymbol(); in evalFtell()
1323 void StreamChecker::evalRewind(const FnDescription *Desc, const CallEvent &Call, in evalRewind() argument
1326 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalRewind()
1341 StreamState::getOpened(Desc, ErrorNone, false)); in evalRewind()
1346 void StreamChecker::evalClearerr(const FnDescription *Desc, in evalClearerr() argument
1350 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalClearerr()
1363 StreamState::getOpened(Desc, ErrorNone, SS->FilePositionIndeterminate)); in evalClearerr()
1367 void StreamChecker::evalFeofFerror(const FnDescription *Desc, in evalFeofFerror() argument
1371 SymbolRef StreamSym = getStreamArg(Desc, Call).getAsSymbol(); in evalFeofFerror()
1391 StreamSym, StreamState::getOpened(Desc, ErrorKind, in evalFeofFerror()
1403 Desc, NewES, SS->FilePositionIndeterminate && !NewES.isFEof()))); 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()
1422 void StreamChecker::evalSetFeofFerror(const FnDescription *Desc, 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()
1478 auto ClearErrorInNotFailed = [&StateNotFailed, Desc](SymbolRef Sym, in evalFflush()
1483 StreamState NewSS = StreamState::getOpened(Desc, NewES, false); in evalFflush()