Lines Matching refs:CStringChecker

89 class CStringChecker : public Checker< eval::Call,  class
134 using FnCheck = std::function<void(const CStringChecker *, CheckerContext &,
139 std::bind(&CStringChecker::evalMemcpy, _1, _2, _3, CK_Regular)},
141 std::bind(&CStringChecker::evalMemcpy, _1, _2, _3, CK_Wide)},
143 std::bind(&CStringChecker::evalMempcpy, _1, _2, _3, CK_Regular)},
145 std::bind(&CStringChecker::evalMempcpy, _1, _2, _3, CK_Wide)},
147 std::bind(&CStringChecker::evalMemcmp, _1, _2, _3, CK_Regular)},
149 std::bind(&CStringChecker::evalMemcmp, _1, _2, _3, CK_Wide)},
151 std::bind(&CStringChecker::evalMemmove, _1, _2, _3, CK_Regular)},
153 std::bind(&CStringChecker::evalMemmove, _1, _2, _3, CK_Wide)},
154 {{CDF_MaybeBuiltin, {"memset"}, 3}, &CStringChecker::evalMemset},
155 {{CDF_MaybeBuiltin, {"explicit_memset"}, 3}, &CStringChecker::evalMemset},
156 {{CDF_MaybeBuiltin, {"strcpy"}, 2}, &CStringChecker::evalStrcpy},
157 {{CDF_MaybeBuiltin, {"strncpy"}, 3}, &CStringChecker::evalStrncpy},
158 {{CDF_MaybeBuiltin, {"stpcpy"}, 2}, &CStringChecker::evalStpcpy},
159 {{CDF_MaybeBuiltin, {"strlcpy"}, 3}, &CStringChecker::evalStrlcpy},
160 {{CDF_MaybeBuiltin, {"strcat"}, 2}, &CStringChecker::evalStrcat},
161 {{CDF_MaybeBuiltin, {"strncat"}, 3}, &CStringChecker::evalStrncat},
162 {{CDF_MaybeBuiltin, {"strlcat"}, 3}, &CStringChecker::evalStrlcat},
163 {{CDF_MaybeBuiltin, {"strlen"}, 1}, &CStringChecker::evalstrLength},
164 {{CDF_MaybeBuiltin, {"wcslen"}, 1}, &CStringChecker::evalstrLength},
165 {{CDF_MaybeBuiltin, {"strnlen"}, 2}, &CStringChecker::evalstrnLength},
166 {{CDF_MaybeBuiltin, {"wcsnlen"}, 2}, &CStringChecker::evalstrnLength},
167 {{CDF_MaybeBuiltin, {"strcmp"}, 2}, &CStringChecker::evalStrcmp},
168 {{CDF_MaybeBuiltin, {"strncmp"}, 3}, &CStringChecker::evalStrncmp},
169 {{CDF_MaybeBuiltin, {"strcasecmp"}, 2}, &CStringChecker::evalStrcasecmp},
171 &CStringChecker::evalStrncasecmp},
172 {{CDF_MaybeBuiltin, {"strsep"}, 2}, &CStringChecker::evalStrsep},
173 {{CDF_MaybeBuiltin, {"bcopy"}, 3}, &CStringChecker::evalBcopy},
175 std::bind(&CStringChecker::evalMemcmp, _1, _2, _3, CK_Regular)},
176 {{CDF_MaybeBuiltin, {"bzero"}, 2}, &CStringChecker::evalBzero},
177 {{CDF_MaybeBuiltin, {"explicit_bzero"}, 2}, &CStringChecker::evalBzero},
320 CStringChecker::assumeZero(CheckerContext &C, ProgramStateRef state, SVal V, in REGISTER_MAP_WITH_PROGRAMSTATE()
331 ProgramStateRef CStringChecker::checkNonNull(CheckerContext &C, in checkNonNull()
362 ProgramStateRef CStringChecker::CheckLocation(CheckerContext &C, in CheckLocation()
442 CStringChecker::CheckBufferAccess(CheckerContext &C, ProgramStateRef State, in CheckBufferAccess()
498 ProgramStateRef CStringChecker::CheckOverlap(CheckerContext &C, in CheckOverlap()
616 void CStringChecker::emitOverlapBug(CheckerContext &C, ProgramStateRef state, in emitOverlapBug()
635 void CStringChecker::emitNullArgBug(CheckerContext &C, ProgramStateRef State, in emitNullArgBug()
652 void CStringChecker::emitUninitializedReadBug(CheckerContext &C, in emitUninitializedReadBug()
672 void CStringChecker::emitOutOfBoundsBug(CheckerContext &C, in emitOutOfBoundsBug()
694 void CStringChecker::emitNotCStringBug(CheckerContext &C, ProgramStateRef State, in emitNotCStringBug()
711 void CStringChecker::emitAdditionOverflowBug(CheckerContext &C, in emitAdditionOverflowBug()
732 ProgramStateRef CStringChecker::checkAdditionOverflow(CheckerContext &C, in checkAdditionOverflow()
787 ProgramStateRef CStringChecker::setCStringLength(ProgramStateRef state, in setCStringLength()
828 SVal CStringChecker::getCStringLengthForRegion(CheckerContext &C, in getCStringLengthForRegion()
843 SVal strLength = svalBuilder.getMetadataSymbolVal(CStringChecker::getTag(), in getCStringLengthForRegion()
867 SVal CStringChecker::getCStringLength(CheckerContext &C, ProgramStateRef &state, in getCStringLength()
942 const StringLiteral *CStringChecker::getCStringLiteral(CheckerContext &C, in getCStringLiteral()
962 bool CStringChecker::IsFirstBufInBound(CheckerContext &C, in IsFirstBufInBound()
1026 ProgramStateRef CStringChecker::InvalidateBuffer(CheckerContext &C, in InvalidateBuffer()
1083 bool CStringChecker::SummarizeRegion(raw_ostream &os, ASTContext &Ctx, in SummarizeRegion()
1122 bool CStringChecker::memsetAux(const Expr *DstBuffer, SVal CharVal, in memsetAux()
1188 CStringChecker::getTag(), MR, DstBuffer, Ctx.getSizeType(), in memsetAux()
1213 void CStringChecker::evalCopyCommon(CheckerContext &C, const CallExpr *CE, in evalCopyCommon()
1314 void CStringChecker::evalMemcpy(CheckerContext &C, const CallExpr *CE, in evalMemcpy()
1329 void CStringChecker::evalMempcpy(CheckerContext &C, const CallExpr *CE, in evalMempcpy()
1343 void CStringChecker::evalMemmove(CheckerContext &C, const CallExpr *CE, in evalMemmove()
1357 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const { in evalBcopy()
1369 void CStringChecker::evalMemcmp(CheckerContext &C, const CallExpr *CE, in evalMemcmp()
1441 void CStringChecker::evalstrLength(CheckerContext &C, in evalstrLength()
1447 void CStringChecker::evalstrnLength(CheckerContext &C, in evalstrnLength()
1453 void CStringChecker::evalstrLengthCommon(CheckerContext &C, const CallExpr *CE, in evalstrLengthCommon()
1571 void CStringChecker::evalStrcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrcpy()
1579 void CStringChecker::evalStrncpy(CheckerContext &C, const CallExpr *CE) const { in evalStrncpy()
1587 void CStringChecker::evalStpcpy(CheckerContext &C, const CallExpr *CE) const { in evalStpcpy()
1595 void CStringChecker::evalStrlcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrlcpy()
1604 void CStringChecker::evalStrcat(CheckerContext &C, const CallExpr *CE) const { in evalStrcat()
1612 void CStringChecker::evalStrncat(CheckerContext &C, const CallExpr *CE) const { in evalStrncat()
1620 void CStringChecker::evalStrlcat(CheckerContext &C, const CallExpr *CE) const { in evalStrlcat()
1631 void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallExpr *CE, in evalStrcpyCommon()
2014 void CStringChecker::evalStrcmp(CheckerContext &C, const CallExpr *CE) const { in evalStrcmp()
2019 void CStringChecker::evalStrncmp(CheckerContext &C, const CallExpr *CE) const { in evalStrncmp()
2024 void CStringChecker::evalStrcasecmp(CheckerContext &C, in evalStrcasecmp()
2030 void CStringChecker::evalStrncasecmp(CheckerContext &C, in evalStrncasecmp()
2036 void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallExpr *CE, in evalStrcmpCommon()
2165 void CStringChecker::evalStrsep(CheckerContext &C, const CallExpr *CE) const { in evalStrsep()
2225 void CStringChecker::evalStdCopy(CheckerContext &C, const CallExpr *CE) const { in evalStdCopy()
2229 void CStringChecker::evalStdCopyBackward(CheckerContext &C, in evalStdCopyBackward()
2234 void CStringChecker::evalStdCopyCommon(CheckerContext &C, in evalStdCopyCommon()
2262 void CStringChecker::evalMemset(CheckerContext &C, const CallExpr *CE) const { in evalMemset()
2312 void CStringChecker::evalBzero(CheckerContext &C, const CallExpr *CE) const { in evalBzero()
2359 CStringChecker::FnCheck CStringChecker::identifyCall(const CallEvent &Call, in identifyCall()
2370 return &CStringChecker::evalStdCopy; in identifyCall()
2372 return &CStringChecker::evalStdCopyBackward; in identifyCall()
2391 bool CStringChecker::evalCall(const CallEvent &Call, CheckerContext &C) const { in evalCall()
2411 void CStringChecker::checkPreStmt(const DeclStmt *DS, CheckerContext &C) const { in checkPreStmt()
2447 CStringChecker::checkRegionChanges(ProgramStateRef state, in checkRegionChanges()
2500 void CStringChecker::checkLiveSymbols(ProgramStateRef state, in checkLiveSymbols()
2515 void CStringChecker::checkDeadSymbols(SymbolReaper &SR, in checkDeadSymbols()
2537 Mgr.registerChecker<CStringChecker>(); in registerCStringModeling()
2546 CStringChecker *checker = mgr.getChecker<CStringChecker>(); \