Lines Matching refs:CStringChecker
82 class CStringChecker : public Checker< eval::Call, class
127 using FnCheck = std::function<void(const CStringChecker *, CheckerContext &,
132 std::bind(&CStringChecker::evalMemcpy, _1, _2, _3, CK_Regular)},
134 std::bind(&CStringChecker::evalMemcpy, _1, _2, _3, CK_Wide)},
136 std::bind(&CStringChecker::evalMempcpy, _1, _2, _3, CK_Regular)},
138 std::bind(&CStringChecker::evalMempcpy, _1, _2, _3, CK_Wide)},
140 std::bind(&CStringChecker::evalMemcmp, _1, _2, _3, CK_Regular)},
142 std::bind(&CStringChecker::evalMemcmp, _1, _2, _3, CK_Wide)},
144 std::bind(&CStringChecker::evalMemmove, _1, _2, _3, CK_Regular)},
146 std::bind(&CStringChecker::evalMemmove, _1, _2, _3, CK_Wide)},
148 &CStringChecker::evalMemset},
149 {{CDM::CLibrary, {"explicit_memset"}, 3}, &CStringChecker::evalMemset},
152 &CStringChecker::evalStrcpy},
154 &CStringChecker::evalStrncpy},
156 &CStringChecker::evalStpcpy},
158 &CStringChecker::evalStrlcpy},
160 &CStringChecker::evalStrcat},
162 &CStringChecker::evalStrncat},
164 &CStringChecker::evalStrlcat},
166 &CStringChecker::evalstrLength},
167 {{CDM::CLibrary, {"wcslen"}, 1}, &CStringChecker::evalstrLength},
169 &CStringChecker::evalstrnLength},
170 {{CDM::CLibrary, {"wcsnlen"}, 2}, &CStringChecker::evalstrnLength},
171 {{CDM::CLibrary, {"strcmp"}, 2}, &CStringChecker::evalStrcmp},
172 {{CDM::CLibrary, {"strncmp"}, 3}, &CStringChecker::evalStrncmp},
173 {{CDM::CLibrary, {"strcasecmp"}, 2}, &CStringChecker::evalStrcasecmp},
174 {{CDM::CLibrary, {"strncasecmp"}, 3}, &CStringChecker::evalStrncasecmp},
175 {{CDM::CLibrary, {"strsep"}, 2}, &CStringChecker::evalStrsep},
176 {{CDM::CLibrary, {"bcopy"}, 3}, &CStringChecker::evalBcopy},
178 std::bind(&CStringChecker::evalMemcmp, _1, _2, _3, CK_Regular)},
179 {{CDM::CLibrary, {"bzero"}, 2}, &CStringChecker::evalBzero},
181 &CStringChecker::evalBzero},
190 &CStringChecker::evalSprintf},
192 &CStringChecker::evalSnprintf},
363 CStringChecker::assumeZero(CheckerContext &C, ProgramStateRef State, SVal V, in REGISTER_MAP_WITH_PROGRAMSTATE()
374 ProgramStateRef CStringChecker::checkNonNull(CheckerContext &C, in checkNonNull()
435 ProgramStateRef CStringChecker::checkInit(CheckerContext &C, in checkInit()
548 ProgramStateRef CStringChecker::CheckLocation(CheckerContext &C, in CheckLocation()
598 CStringChecker::CheckBufferAccess(CheckerContext &C, ProgramStateRef State, in CheckBufferAccess()
663 ProgramStateRef CStringChecker::CheckOverlap(CheckerContext &C, in CheckOverlap()
781 void CStringChecker::emitOverlapBug(CheckerContext &C, ProgramStateRef state, in emitOverlapBug()
800 void CStringChecker::emitNullArgBug(CheckerContext &C, ProgramStateRef State, in emitNullArgBug()
819 void CStringChecker::emitUninitializedReadBug(CheckerContext &C, in emitUninitializedReadBug()
838 void CStringChecker::emitOutOfBoundsBug(CheckerContext &C, in emitOutOfBoundsBug()
858 void CStringChecker::emitNotCStringBug(CheckerContext &C, ProgramStateRef State, in emitNotCStringBug()
877 void CStringChecker::emitAdditionOverflowBug(CheckerContext &C, in emitAdditionOverflowBug()
901 ProgramStateRef CStringChecker::checkAdditionOverflow(CheckerContext &C, in checkAdditionOverflow()
956 ProgramStateRef CStringChecker::setCStringLength(ProgramStateRef state, in setCStringLength()
997 SVal CStringChecker::getCStringLengthForRegion(CheckerContext &C, in getCStringLengthForRegion()
1012 SVal strLength = svalBuilder.getMetadataSymbolVal(CStringChecker::getTag(), in getCStringLengthForRegion()
1036 SVal CStringChecker::getCStringLength(CheckerContext &C, ProgramStateRef &state, in getCStringLength()
1125 const StringLiteral *CStringChecker::getCStringLiteral(CheckerContext &C, in getCStringLiteral()
1145 bool CStringChecker::isFirstBufInBound(CheckerContext &C, ProgramStateRef State, in isFirstBufInBound()
1206 ProgramStateRef CStringChecker::invalidateDestinationBufferBySize( in invalidateDestinationBufferBySize()
1227 CStringChecker::invalidateDestinationBufferAlwaysEscapeSuperRegion( in invalidateDestinationBufferAlwaysEscapeSuperRegion()
1237 ProgramStateRef CStringChecker::invalidateDestinationBufferNeverOverflows( in invalidateDestinationBufferNeverOverflows()
1251 ProgramStateRef CStringChecker::invalidateSourceBuffer(CheckerContext &C, in invalidateSourceBuffer()
1268 ProgramStateRef CStringChecker::invalidateBufferAux( in invalidateBufferAux()
1306 bool CStringChecker::SummarizeRegion(raw_ostream &os, ASTContext &Ctx, in SummarizeRegion()
1345 bool CStringChecker::memsetAux(const Expr *DstBuffer, SVal CharVal, in memsetAux()
1411 CStringChecker::getTag(), MR, DstBuffer, Ctx.getSizeType(), in memsetAux()
1436 void CStringChecker::evalCopyCommon(CheckerContext &C, const CallEvent &Call, in evalCopyCommon()
1540 void CStringChecker::evalMemcpy(CheckerContext &C, const CallEvent &Call, in evalMemcpy()
1555 void CStringChecker::evalMempcpy(CheckerContext &C, const CallEvent &Call, in evalMempcpy()
1569 void CStringChecker::evalMemmove(CheckerContext &C, const CallEvent &Call, in evalMemmove()
1583 void CStringChecker::evalBcopy(CheckerContext &C, const CallEvent &Call) const { in evalBcopy()
1595 void CStringChecker::evalMemcmp(CheckerContext &C, const CallEvent &Call, in evalMemcmp()
1669 void CStringChecker::evalstrLength(CheckerContext &C, in evalstrLength()
1675 void CStringChecker::evalstrnLength(CheckerContext &C, in evalstrnLength()
1681 void CStringChecker::evalstrLengthCommon(CheckerContext &C, in evalstrLengthCommon()
1800 void CStringChecker::evalStrcpy(CheckerContext &C, in evalStrcpy()
1809 void CStringChecker::evalStrncpy(CheckerContext &C, in evalStrncpy()
1818 void CStringChecker::evalStpcpy(CheckerContext &C, in evalStpcpy()
1827 void CStringChecker::evalStrlcpy(CheckerContext &C, in evalStrlcpy()
1837 void CStringChecker::evalStrcat(CheckerContext &C, in evalStrcat()
1846 void CStringChecker::evalStrncat(CheckerContext &C, in evalStrncat()
1855 void CStringChecker::evalStrlcat(CheckerContext &C, in evalStrlcat()
1867 void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallEvent &Call, in evalStrcpyCommon()
2266 void CStringChecker::evalStrcmp(CheckerContext &C, in evalStrcmp()
2272 void CStringChecker::evalStrncmp(CheckerContext &C, in evalStrncmp()
2278 void CStringChecker::evalStrcasecmp(CheckerContext &C, in evalStrcasecmp()
2284 void CStringChecker::evalStrncasecmp(CheckerContext &C, in evalStrncasecmp()
2290 void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallEvent &Call, in evalStrcmpCommon()
2420 void CStringChecker::evalStrsep(CheckerContext &C, in evalStrsep()
2481 void CStringChecker::evalStdCopy(CheckerContext &C, in evalStdCopy()
2486 void CStringChecker::evalStdCopyBackward(CheckerContext &C, in evalStdCopyBackward()
2491 void CStringChecker::evalStdCopyCommon(CheckerContext &C, in evalStdCopyCommon()
2522 void CStringChecker::evalMemset(CheckerContext &C, in evalMemset()
2573 void CStringChecker::evalBzero(CheckerContext &C, const CallEvent &Call) const { in evalBzero()
2616 void CStringChecker::evalSprintf(CheckerContext &C, in evalSprintf()
2622 void CStringChecker::evalSnprintf(CheckerContext &C, in evalSnprintf()
2628 void CStringChecker::evalSprintfCommon(CheckerContext &C, const CallEvent &Call, in evalSprintfCommon()
2670 CStringChecker::FnCheck CStringChecker::identifyCall(const CallEvent &Call, in identifyCall()
2681 return &CStringChecker::evalStdCopy; in identifyCall()
2683 return &CStringChecker::evalStdCopyBackward; in identifyCall()
2702 bool CStringChecker::evalCall(const CallEvent &Call, CheckerContext &C) const { in evalCall()
2722 void CStringChecker::checkPreStmt(const DeclStmt *DS, CheckerContext &C) const { in checkPreStmt()
2758 CStringChecker::checkRegionChanges(ProgramStateRef state, in checkRegionChanges()
2806 void CStringChecker::checkLiveSymbols(ProgramStateRef state, in checkLiveSymbols()
2817 void CStringChecker::checkDeadSymbols(SymbolReaper &SR, in checkDeadSymbols()
2837 Mgr.registerChecker<CStringChecker>(); in registerCStringModeling()
2846 CStringChecker *checker = mgr.getChecker<CStringChecker>(); \