Lines Matching refs:StreamChecker
164 class StreamChecker;
165 using FnCheck = std::function<void(const StreamChecker *, const FnDescription *,
211 class StreamChecker : public Checker<check::PreCall, eval::Call, class
241 {{{"fopen"}, 2}, {nullptr, &StreamChecker::evalFopen, ArgNone}},
242 {{{"fdopen"}, 2}, {nullptr, &StreamChecker::evalFopen, ArgNone}},
244 {&StreamChecker::preFreopen, &StreamChecker::evalFreopen, 2}},
245 {{{"tmpfile"}, 0}, {nullptr, &StreamChecker::evalFopen, ArgNone}},
247 {&StreamChecker::preDefault, &StreamChecker::evalFclose, 0}},
249 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, true),
250 std::bind(&StreamChecker::evalFreadFwrite, _1, _2, _3, _4, true), 3}},
252 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, false),
253 std::bind(&StreamChecker::evalFreadFwrite, _1, _2, _3, _4, false), 3}},
255 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, true),
256 std::bind(&StreamChecker::evalFgetx, _1, _2, _3, _4, true), 0}},
258 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, true),
259 std::bind(&StreamChecker::evalFgetx, _1, _2, _3, _4, false), 2}},
261 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, false),
262 std::bind(&StreamChecker::evalFputx, _1, _2, _3, _4, true), 1}},
264 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, false),
265 std::bind(&StreamChecker::evalFputx, _1, _2, _3, _4, false), 1}},
267 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, false),
268 std::bind(&StreamChecker::evalFprintf, _1, _2, _3, _4), 0}},
270 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, true),
271 std::bind(&StreamChecker::evalFscanf, _1, _2, _3, _4), 0}},
273 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, false),
274 std::bind(&StreamChecker::evalUngetc, _1, _2, _3, _4), 1}},
276 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, true),
277 std::bind(&StreamChecker::evalGetdelim, _1, _2, _3, _4), 3}},
279 {std::bind(&StreamChecker::preReadWrite, _1, _2, _3, _4, true),
280 std::bind(&StreamChecker::evalGetdelim, _1, _2, _3, _4), 2}},
282 {&StreamChecker::preFseek, &StreamChecker::evalFseek, 0}},
284 {&StreamChecker::preFseek, &StreamChecker::evalFseek, 0}},
286 {&StreamChecker::preDefault, &StreamChecker::evalFtell, 0}},
288 {&StreamChecker::preDefault, &StreamChecker::evalFtell, 0}},
290 {&StreamChecker::preFflush, &StreamChecker::evalFflush, 0}},
292 {&StreamChecker::preDefault, &StreamChecker::evalRewind, 0}},
294 {&StreamChecker::preDefault, &StreamChecker::evalFgetpos, 0}},
296 {&StreamChecker::preDefault, &StreamChecker::evalFsetpos, 0}},
298 {&StreamChecker::preDefault, &StreamChecker::evalClearerr, 0}},
300 {&StreamChecker::preDefault,
301 std::bind(&StreamChecker::evalFeofFerror, _1, _2, _3, _4, ErrorFEof),
304 {&StreamChecker::preDefault,
305 std::bind(&StreamChecker::evalFeofFerror, _1, _2, _3, _4, ErrorFError),
307 {{{"fileno"}, 1}, {&StreamChecker::preDefault, nullptr, 0}},
313 std::bind(&StreamChecker::evalSetFeofFerror, _1, _2, _3, _4, ErrorFEof),
317 std::bind(&StreamChecker::evalSetFeofFerror, _1, _2, _3, _4,
526 const ExplodedNode *StreamChecker::getAcquisitionSite(const ExplodedNode *N, in getAcquisitionSite()
551 void StreamChecker::checkPreCall(const CallEvent &Call, in checkPreCall()
562 bool StreamChecker::evalCall(const CallEvent &Call, CheckerContext &C) const { in evalCall()
574 void StreamChecker::evalFopen(const FnDescription *Desc, const CallEvent &Call, in evalFopen()
603 void StreamChecker::preFreopen(const FnDescription *Desc, const CallEvent &Call, in preFreopen()
615 void StreamChecker::evalFreopen(const FnDescription *Desc, in evalFreopen()
661 void StreamChecker::evalFclose(const FnDescription *Desc, const CallEvent &Call, in evalFclose()
695 void StreamChecker::preReadWrite(const FnDescription *Desc, in preReadWrite()
726 void StreamChecker::evalFreadFwrite(const FnDescription *Desc, in evalFreadFwrite()
806 void StreamChecker::evalFgetx(const FnDescription *Desc, const CallEvent &Call, in evalFgetx()
892 void StreamChecker::evalFputx(const FnDescription *Desc, const CallEvent &Call, in evalFputx()
950 void StreamChecker::evalFprintf(const FnDescription *Desc, in evalFprintf()
993 void StreamChecker::evalFscanf(const FnDescription *Desc, const CallEvent &Call, in evalFscanf()
1056 void StreamChecker::evalUngetc(const FnDescription *Desc, const CallEvent &Call, in evalUngetc()
1095 void StreamChecker::evalGetdelim(const FnDescription *Desc, in evalGetdelim()
1151 void StreamChecker::preFseek(const FnDescription *Desc, const CallEvent &Call, in preFseek()
1169 void StreamChecker::evalFseek(const FnDescription *Desc, const CallEvent &Call, in evalFseek()
1218 void StreamChecker::evalFgetpos(const FnDescription *Desc, in evalFgetpos()
1247 void StreamChecker::evalFsetpos(const FnDescription *Desc, in evalFsetpos()
1285 void StreamChecker::evalFtell(const FnDescription *Desc, const CallEvent &Call, in evalFtell()
1323 void StreamChecker::evalRewind(const FnDescription *Desc, const CallEvent &Call, in evalRewind()
1346 void StreamChecker::evalClearerr(const FnDescription *Desc, in evalClearerr()
1367 void StreamChecker::evalFeofFerror(const FnDescription *Desc, in evalFeofFerror()
1407 void StreamChecker::preDefault(const FnDescription *Desc, const CallEvent &Call, in preDefault()
1422 void StreamChecker::evalSetFeofFerror(const FnDescription *Desc, in evalSetFeofFerror()
1435 void StreamChecker::preFflush(const FnDescription *Desc, const CallEvent &Call, in preFflush()
1450 void StreamChecker::evalFflush(const FnDescription *Desc, const CallEvent &Call, in evalFflush()
1514 StreamChecker::ensureStreamNonNull(SVal StreamVal, const Expr *StreamE, in ensureStreamNonNull()
1540 ProgramStateRef StreamChecker::ensureStreamOpened(SVal StreamVal, in ensureStreamOpened()
1585 ProgramStateRef StreamChecker::ensureNoFilePositionIndeterminate( in ensureNoFilePositionIndeterminate()
1631 StreamChecker::ensureFseekWhenceCorrect(SVal WhenceVal, CheckerContext &C, in ensureFseekWhenceCorrect()
1654 void StreamChecker::reportFEofWarning(SymbolRef StreamSym, CheckerContext &C, in reportFEofWarning()
1670 StreamChecker::reportLeaks(const SmallVector<SymbolRef, 2> &LeakedSyms, in reportLeaks()
1710 void StreamChecker::checkDeadSymbols(SymbolReaper &SymReaper, in checkDeadSymbols()
1734 ProgramStateRef StreamChecker::checkPointerEscape( in checkPointerEscape()
1761 Mgr.registerChecker<StreamChecker>(); in registerStreamChecker()
1769 auto *Checker = Mgr.getChecker<StreamChecker>(); in registerStreamTesterChecker()