Lines Matching refs:CStringChecker
78 class CStringChecker : public Checker< eval::Call, class
123 using FnCheck = std::function<void(const CStringChecker *, CheckerContext &,
128 std::bind(&CStringChecker::evalMemcpy, _1, _2, _3, CK_Regular)},
130 std::bind(&CStringChecker::evalMemcpy, _1, _2, _3, CK_Wide)},
132 std::bind(&CStringChecker::evalMempcpy, _1, _2, _3, CK_Regular)},
134 std::bind(&CStringChecker::evalMempcpy, _1, _2, _3, CK_Wide)},
136 std::bind(&CStringChecker::evalMemcmp, _1, _2, _3, CK_Regular)},
138 std::bind(&CStringChecker::evalMemcmp, _1, _2, _3, CK_Wide)},
140 std::bind(&CStringChecker::evalMemmove, _1, _2, _3, CK_Regular)},
142 std::bind(&CStringChecker::evalMemmove, _1, _2, _3, CK_Wide)},
143 {{CDF_MaybeBuiltin, {"memset"}, 3}, &CStringChecker::evalMemset},
144 {{CDF_MaybeBuiltin, {"explicit_memset"}, 3}, &CStringChecker::evalMemset},
145 {{CDF_MaybeBuiltin, {"strcpy"}, 2}, &CStringChecker::evalStrcpy},
146 {{CDF_MaybeBuiltin, {"strncpy"}, 3}, &CStringChecker::evalStrncpy},
147 {{CDF_MaybeBuiltin, {"stpcpy"}, 2}, &CStringChecker::evalStpcpy},
148 {{CDF_MaybeBuiltin, {"strlcpy"}, 3}, &CStringChecker::evalStrlcpy},
149 {{CDF_MaybeBuiltin, {"strcat"}, 2}, &CStringChecker::evalStrcat},
150 {{CDF_MaybeBuiltin, {"strncat"}, 3}, &CStringChecker::evalStrncat},
151 {{CDF_MaybeBuiltin, {"strlcat"}, 3}, &CStringChecker::evalStrlcat},
152 {{CDF_MaybeBuiltin, {"strlen"}, 1}, &CStringChecker::evalstrLength},
153 {{CDF_MaybeBuiltin, {"wcslen"}, 1}, &CStringChecker::evalstrLength},
154 {{CDF_MaybeBuiltin, {"strnlen"}, 2}, &CStringChecker::evalstrnLength},
155 {{CDF_MaybeBuiltin, {"wcsnlen"}, 2}, &CStringChecker::evalstrnLength},
156 {{CDF_MaybeBuiltin, {"strcmp"}, 2}, &CStringChecker::evalStrcmp},
157 {{CDF_MaybeBuiltin, {"strncmp"}, 3}, &CStringChecker::evalStrncmp},
158 {{CDF_MaybeBuiltin, {"strcasecmp"}, 2}, &CStringChecker::evalStrcasecmp},
160 &CStringChecker::evalStrncasecmp},
161 {{CDF_MaybeBuiltin, {"strsep"}, 2}, &CStringChecker::evalStrsep},
162 {{CDF_MaybeBuiltin, {"bcopy"}, 3}, &CStringChecker::evalBcopy},
164 std::bind(&CStringChecker::evalMemcmp, _1, _2, _3, CK_Regular)},
165 {{CDF_MaybeBuiltin, {"bzero"}, 2}, &CStringChecker::evalBzero},
166 {{CDF_MaybeBuiltin, {"explicit_bzero"}, 2}, &CStringChecker::evalBzero},
167 {{CDF_MaybeBuiltin, {"sprintf"}, 2}, &CStringChecker::evalSprintf},
168 {{CDF_MaybeBuiltin, {"snprintf"}, 2}, &CStringChecker::evalSnprintf},
335 CStringChecker::assumeZero(CheckerContext &C, ProgramStateRef state, SVal V, in REGISTER_MAP_WITH_PROGRAMSTATE()
346 ProgramStateRef CStringChecker::checkNonNull(CheckerContext &C, in checkNonNull()
377 ProgramStateRef CStringChecker::CheckLocation(CheckerContext &C, in CheckLocation()
457 CStringChecker::CheckBufferAccess(CheckerContext &C, ProgramStateRef State, in CheckBufferAccess()
519 ProgramStateRef CStringChecker::CheckOverlap(CheckerContext &C, in CheckOverlap()
637 void CStringChecker::emitOverlapBug(CheckerContext &C, ProgramStateRef state, in emitOverlapBug()
656 void CStringChecker::emitNullArgBug(CheckerContext &C, ProgramStateRef State, in emitNullArgBug()
675 void CStringChecker::emitUninitializedReadBug(CheckerContext &C, in emitUninitializedReadBug()
693 void CStringChecker::emitOutOfBoundsBug(CheckerContext &C, in emitOutOfBoundsBug()
713 void CStringChecker::emitNotCStringBug(CheckerContext &C, ProgramStateRef State, in emitNotCStringBug()
732 void CStringChecker::emitAdditionOverflowBug(CheckerContext &C, in emitAdditionOverflowBug()
756 ProgramStateRef CStringChecker::checkAdditionOverflow(CheckerContext &C, in checkAdditionOverflow()
811 ProgramStateRef CStringChecker::setCStringLength(ProgramStateRef state, in setCStringLength()
852 SVal CStringChecker::getCStringLengthForRegion(CheckerContext &C, in getCStringLengthForRegion()
867 SVal strLength = svalBuilder.getMetadataSymbolVal(CStringChecker::getTag(), in getCStringLengthForRegion()
891 SVal CStringChecker::getCStringLength(CheckerContext &C, ProgramStateRef &state, in getCStringLength()
980 const StringLiteral *CStringChecker::getCStringLiteral(CheckerContext &C, in getCStringLiteral()
1000 bool CStringChecker::isFirstBufInBound(CheckerContext &C, ProgramStateRef State, in isFirstBufInBound()
1061 ProgramStateRef CStringChecker::invalidateDestinationBufferBySize( in invalidateDestinationBufferBySize()
1082 CStringChecker::invalidateDestinationBufferAlwaysEscapeSuperRegion( in invalidateDestinationBufferAlwaysEscapeSuperRegion()
1092 ProgramStateRef CStringChecker::invalidateDestinationBufferNeverOverflows( in invalidateDestinationBufferNeverOverflows()
1106 ProgramStateRef CStringChecker::invalidateSourceBuffer(CheckerContext &C, in invalidateSourceBuffer()
1123 ProgramStateRef CStringChecker::invalidateBufferAux( in invalidateBufferAux()
1161 bool CStringChecker::SummarizeRegion(raw_ostream &os, ASTContext &Ctx, in SummarizeRegion()
1200 bool CStringChecker::memsetAux(const Expr *DstBuffer, SVal CharVal, in memsetAux()
1266 CStringChecker::getTag(), MR, DstBuffer, Ctx.getSizeType(), in memsetAux()
1291 void CStringChecker::evalCopyCommon(CheckerContext &C, const CallEvent &Call, in evalCopyCommon()
1392 void CStringChecker::evalMemcpy(CheckerContext &C, const CallEvent &Call, in evalMemcpy()
1407 void CStringChecker::evalMempcpy(CheckerContext &C, const CallEvent &Call, in evalMempcpy()
1421 void CStringChecker::evalMemmove(CheckerContext &C, const CallEvent &Call, in evalMemmove()
1435 void CStringChecker::evalBcopy(CheckerContext &C, const CallEvent &Call) const { in evalBcopy()
1447 void CStringChecker::evalMemcmp(CheckerContext &C, const CallEvent &Call, in evalMemcmp()
1521 void CStringChecker::evalstrLength(CheckerContext &C, in evalstrLength()
1527 void CStringChecker::evalstrnLength(CheckerContext &C, in evalstrnLength()
1533 void CStringChecker::evalstrLengthCommon(CheckerContext &C, in evalstrLengthCommon()
1652 void CStringChecker::evalStrcpy(CheckerContext &C, in evalStrcpy()
1661 void CStringChecker::evalStrncpy(CheckerContext &C, in evalStrncpy()
1670 void CStringChecker::evalStpcpy(CheckerContext &C, in evalStpcpy()
1679 void CStringChecker::evalStrlcpy(CheckerContext &C, in evalStrlcpy()
1689 void CStringChecker::evalStrcat(CheckerContext &C, in evalStrcat()
1698 void CStringChecker::evalStrncat(CheckerContext &C, in evalStrncat()
1707 void CStringChecker::evalStrlcat(CheckerContext &C, in evalStrlcat()
1719 void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallEvent &Call, in evalStrcpyCommon()
2118 void CStringChecker::evalStrcmp(CheckerContext &C, in evalStrcmp()
2124 void CStringChecker::evalStrncmp(CheckerContext &C, in evalStrncmp()
2130 void CStringChecker::evalStrcasecmp(CheckerContext &C, in evalStrcasecmp()
2136 void CStringChecker::evalStrncasecmp(CheckerContext &C, in evalStrncasecmp()
2142 void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallEvent &Call, in evalStrcmpCommon()
2272 void CStringChecker::evalStrsep(CheckerContext &C, in evalStrsep()
2333 void CStringChecker::evalStdCopy(CheckerContext &C, in evalStdCopy()
2338 void CStringChecker::evalStdCopyBackward(CheckerContext &C, in evalStdCopyBackward()
2343 void CStringChecker::evalStdCopyCommon(CheckerContext &C, in evalStdCopyCommon()
2374 void CStringChecker::evalMemset(CheckerContext &C, in evalMemset()
2425 void CStringChecker::evalBzero(CheckerContext &C, const CallEvent &Call) const { in evalBzero()
2468 void CStringChecker::evalSprintf(CheckerContext &C, in evalSprintf()
2476 void CStringChecker::evalSnprintf(CheckerContext &C, in evalSnprintf()
2484 void CStringChecker::evalSprintfCommon(CheckerContext &C, const CallEvent &Call, in evalSprintfCommon()
2523 CStringChecker::FnCheck CStringChecker::identifyCall(const CallEvent &Call, in identifyCall()
2534 return &CStringChecker::evalStdCopy; in identifyCall()
2536 return &CStringChecker::evalStdCopyBackward; in identifyCall()
2555 bool CStringChecker::evalCall(const CallEvent &Call, CheckerContext &C) const { in evalCall()
2575 void CStringChecker::checkPreStmt(const DeclStmt *DS, CheckerContext &C) const { in checkPreStmt()
2611 CStringChecker::checkRegionChanges(ProgramStateRef state, in checkRegionChanges()
2659 void CStringChecker::checkLiveSymbols(ProgramStateRef state, in checkLiveSymbols()
2670 void CStringChecker::checkDeadSymbols(SymbolReaper &SR, in checkDeadSymbols()
2690 Mgr.registerChecker<CStringChecker>(); in registerCStringModeling()
2699 CStringChecker *checker = mgr.getChecker<CStringChecker>(); \