Lines Matching refs:CStringChecker
1 //= CStringChecker.cpp - Checks calls to C string functions --------*- C++ -*-//
10 // This defines CStringChecker, which is an assortment of checks on calls
32 class CStringChecker : public Checker< eval::Call,
75 typedef void (CStringChecker::*FnCheck)(CheckerContext &,
207 CStringChecker::assumeZero(CheckerContext &C, ProgramStateRef state, SVal V,
218 ProgramStateRef CStringChecker::checkNonNull(CheckerContext &C,
262 ProgramStateRef CStringChecker::CheckLocation(CheckerContext &C,
336 ProgramStateRef CStringChecker::CheckBufferAccess(CheckerContext &C,
413 ProgramStateRef CStringChecker::CheckOverlap(CheckerContext &C,
526 void CStringChecker::emitOverlapBug(CheckerContext &C, ProgramStateRef state,
546 ProgramStateRef CStringChecker::checkAdditionOverflow(CheckerContext &C,
620 ProgramStateRef CStringChecker::setCStringLength(ProgramStateRef state,
660 SVal CStringChecker::getCStringLengthForRegion(CheckerContext &C,
675 SVal strLength = svalBuilder.getMetadataSymbolVal(CStringChecker::getTag(),
698 SVal CStringChecker::getCStringLength(CheckerContext &C, ProgramStateRef &state,
799 const StringLiteral *CStringChecker::getCStringLiteral(CheckerContext &C,
819 ProgramStateRef CStringChecker::InvalidateBuffer(CheckerContext &C,
865 bool CStringChecker::SummarizeRegion(raw_ostream &os, ASTContext &Ctx,
906 void CStringChecker::evalCopyCommon(CheckerContext &C,
1012 void CStringChecker::evalMemcpy(CheckerContext &C, const CallExpr *CE) const {
1024 void CStringChecker::evalMempcpy(CheckerContext &C, const CallExpr *CE) const {
1036 void CStringChecker::evalMemmove(CheckerContext &C, const CallExpr *CE) const {
1048 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const {
1057 void CStringChecker::evalMemcmp(CheckerContext &C, const CallExpr *CE) const {
1133 void CStringChecker::evalstrLength(CheckerContext &C,
1142 void CStringChecker::evalstrnLength(CheckerContext &C,
1151 void CStringChecker::evalstrLengthCommon(CheckerContext &C, const CallExpr *CE,
1270 void CStringChecker::evalStrcpy(CheckerContext &C, const CallExpr *CE) const {
1281 void CStringChecker::evalStrncpy(CheckerContext &C, const CallExpr *CE) const {
1292 void CStringChecker::evalStpcpy(CheckerContext &C, const CallExpr *CE) const {
1303 void CStringChecker::evalStrcat(CheckerContext &C, const CallExpr *CE) const {
1314 void CStringChecker::evalStrncat(CheckerContext &C, const CallExpr *CE) const {
1325 void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallExpr *CE,
1651 void CStringChecker::evalStrcmp(CheckerContext &C, const CallExpr *CE) const {
1659 void CStringChecker::evalStrncmp(CheckerContext &C, const CallExpr *CE) const {
1667 void CStringChecker::evalStrcasecmp(CheckerContext &C,
1676 void CStringChecker::evalStrncasecmp(CheckerContext &C,
1685 void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallExpr *CE,
1809 void CStringChecker::evalStrsep(CheckerContext &C, const CallExpr *CE) const {
1871 bool CStringChecker::evalCall(const CallExpr *CE, CheckerContext &C) const {
1880 evalFunction = &CStringChecker::evalMemcpy;
1882 evalFunction = &CStringChecker::evalMempcpy;
1884 evalFunction = &CStringChecker::evalMemcmp;
1886 evalFunction = &CStringChecker::evalMemmove;
1888 evalFunction = &CStringChecker::evalStrcpy;
1890 evalFunction = &CStringChecker::evalStrncpy;
1892 evalFunction = &CStringChecker::evalStpcpy;
1894 evalFunction = &CStringChecker::evalStrcat;
1896 evalFunction = &CStringChecker::evalStrncat;
1898 evalFunction = &CStringChecker::evalstrLength;
1900 evalFunction = &CStringChecker::evalstrnLength;
1902 evalFunction = &CStringChecker::evalStrcmp;
1904 evalFunction = &CStringChecker::evalStrncmp;
1906 evalFunction = &CStringChecker::evalStrcasecmp;
1908 evalFunction = &CStringChecker::evalStrncasecmp;
1910 evalFunction = &CStringChecker::evalStrsep;
1912 evalFunction = &CStringChecker::evalBcopy;
1914 evalFunction = &CStringChecker::evalMemcmp;
1939 void CStringChecker::checkPreStmt(const DeclStmt *DS, CheckerContext &C) const {
1974 bool CStringChecker::wantsRegionChangeUpdate(ProgramStateRef state) const {
1980 CStringChecker::checkRegionChanges(ProgramStateRef state,
2032 void CStringChecker::checkLiveSymbols(ProgramStateRef state,
2047 void CStringChecker::checkDeadSymbols(SymbolReaper &SR,
2073 CStringChecker *checker = mgr.registerChecker<CStringChecker>(); \