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, false)},
130 std::bind(&CStringChecker::evalMemcpy, _1, _2, _3, true)},
131 {{CDF_MaybeBuiltin, "mempcpy", 3}, &CStringChecker::evalMempcpy},
132 {{CDF_MaybeBuiltin, "memcmp", 3}, &CStringChecker::evalMemcmp},
133 {{CDF_MaybeBuiltin, "memmove", 3}, &CStringChecker::evalMemmove},
134 {{CDF_MaybeBuiltin, "memset", 3}, &CStringChecker::evalMemset},
135 {{CDF_MaybeBuiltin, "explicit_memset", 3}, &CStringChecker::evalMemset},
136 {{CDF_MaybeBuiltin, "strcpy", 2}, &CStringChecker::evalStrcpy},
137 {{CDF_MaybeBuiltin, "strncpy", 3}, &CStringChecker::evalStrncpy},
138 {{CDF_MaybeBuiltin, "stpcpy", 2}, &CStringChecker::evalStpcpy},
139 {{CDF_MaybeBuiltin, "strlcpy", 3}, &CStringChecker::evalStrlcpy},
140 {{CDF_MaybeBuiltin, "strcat", 2}, &CStringChecker::evalStrcat},
141 {{CDF_MaybeBuiltin, "strncat", 3}, &CStringChecker::evalStrncat},
142 {{CDF_MaybeBuiltin, "strlcat", 3}, &CStringChecker::evalStrlcat},
143 {{CDF_MaybeBuiltin, "strlen", 1}, &CStringChecker::evalstrLength},
144 {{CDF_MaybeBuiltin, "wcslen", 1}, &CStringChecker::evalstrLength},
145 {{CDF_MaybeBuiltin, "strnlen", 2}, &CStringChecker::evalstrnLength},
146 {{CDF_MaybeBuiltin, "wcsnlen", 2}, &CStringChecker::evalstrnLength},
147 {{CDF_MaybeBuiltin, "strcmp", 2}, &CStringChecker::evalStrcmp},
148 {{CDF_MaybeBuiltin, "strncmp", 3}, &CStringChecker::evalStrncmp},
149 {{CDF_MaybeBuiltin, "strcasecmp", 2}, &CStringChecker::evalStrcasecmp},
150 {{CDF_MaybeBuiltin, "strncasecmp", 3}, &CStringChecker::evalStrncasecmp},
151 {{CDF_MaybeBuiltin, "strsep", 2}, &CStringChecker::evalStrsep},
152 {{CDF_MaybeBuiltin, "bcopy", 3}, &CStringChecker::evalBcopy},
153 {{CDF_MaybeBuiltin, "bcmp", 3}, &CStringChecker::evalMemcmp},
154 {{CDF_MaybeBuiltin, "bzero", 2}, &CStringChecker::evalBzero},
155 {{CDF_MaybeBuiltin, "explicit_bzero", 2}, &CStringChecker::evalBzero},
296 CStringChecker::assumeZero(CheckerContext &C, ProgramStateRef state, SVal V, in REGISTER_MAP_WITH_PROGRAMSTATE()
307 ProgramStateRef CStringChecker::checkNonNull(CheckerContext &C, in checkNonNull()
338 ProgramStateRef CStringChecker::CheckLocation(CheckerContext &C, in CheckLocation()
418 CStringChecker::CheckBufferAccess(CheckerContext &C, ProgramStateRef State, in CheckBufferAccess()
474 ProgramStateRef CStringChecker::CheckOverlap(CheckerContext &C, in CheckOverlap()
592 void CStringChecker::emitOverlapBug(CheckerContext &C, ProgramStateRef state, in emitOverlapBug()
611 void CStringChecker::emitNullArgBug(CheckerContext &C, ProgramStateRef State, in emitNullArgBug()
628 void CStringChecker::emitUninitializedReadBug(CheckerContext &C, in emitUninitializedReadBug()
648 void CStringChecker::emitOutOfBoundsBug(CheckerContext &C, in emitOutOfBoundsBug()
670 void CStringChecker::emitNotCStringBug(CheckerContext &C, ProgramStateRef State, in emitNotCStringBug()
687 void CStringChecker::emitAdditionOverflowBug(CheckerContext &C, in emitAdditionOverflowBug()
708 ProgramStateRef CStringChecker::checkAdditionOverflow(CheckerContext &C, in checkAdditionOverflow()
763 ProgramStateRef CStringChecker::setCStringLength(ProgramStateRef state, in setCStringLength()
804 SVal CStringChecker::getCStringLengthForRegion(CheckerContext &C, in getCStringLengthForRegion()
819 SVal strLength = svalBuilder.getMetadataSymbolVal(CStringChecker::getTag(), in getCStringLengthForRegion()
843 SVal CStringChecker::getCStringLength(CheckerContext &C, ProgramStateRef &state, in getCStringLength()
918 const StringLiteral *CStringChecker::getCStringLiteral(CheckerContext &C, in getCStringLiteral()
938 bool CStringChecker::IsFirstBufInBound(CheckerContext &C, in IsFirstBufInBound()
1002 ProgramStateRef CStringChecker::InvalidateBuffer(CheckerContext &C, in InvalidateBuffer()
1059 bool CStringChecker::SummarizeRegion(raw_ostream &os, ASTContext &Ctx, in SummarizeRegion()
1098 bool CStringChecker::memsetAux(const Expr *DstBuffer, SVal CharVal, in memsetAux()
1164 CStringChecker::getTag(), MR, DstBuffer, Ctx.getSizeType(), in memsetAux()
1189 void CStringChecker::evalCopyCommon(CheckerContext &C, const CallExpr *CE, in evalCopyCommon()
1290 void CStringChecker::evalMemcpy(CheckerContext &C, const CallExpr *CE, in evalMemcpy()
1306 void CStringChecker::evalMempcpy(CheckerContext &C, const CallExpr *CE) const { in evalMempcpy()
1319 void CStringChecker::evalMemmove(CheckerContext &C, const CallExpr *CE) const { in evalMemmove()
1332 void CStringChecker::evalBcopy(CheckerContext &C, const CallExpr *CE) const { in evalBcopy()
1344 void CStringChecker::evalMemcmp(CheckerContext &C, const CallExpr *CE) const { in evalMemcmp()
1415 void CStringChecker::evalstrLength(CheckerContext &C, in evalstrLength()
1421 void CStringChecker::evalstrnLength(CheckerContext &C, in evalstrnLength()
1427 void CStringChecker::evalstrLengthCommon(CheckerContext &C, const CallExpr *CE, in evalstrLengthCommon()
1545 void CStringChecker::evalStrcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrcpy()
1553 void CStringChecker::evalStrncpy(CheckerContext &C, const CallExpr *CE) const { in evalStrncpy()
1561 void CStringChecker::evalStpcpy(CheckerContext &C, const CallExpr *CE) const { in evalStpcpy()
1569 void CStringChecker::evalStrlcpy(CheckerContext &C, const CallExpr *CE) const { in evalStrlcpy()
1578 void CStringChecker::evalStrcat(CheckerContext &C, const CallExpr *CE) const { in evalStrcat()
1586 void CStringChecker::evalStrncat(CheckerContext &C, const CallExpr *CE) const { in evalStrncat()
1594 void CStringChecker::evalStrlcat(CheckerContext &C, const CallExpr *CE) const { in evalStrlcat()
1605 void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallExpr *CE, in evalStrcpyCommon()
1987 void CStringChecker::evalStrcmp(CheckerContext &C, const CallExpr *CE) const { in evalStrcmp()
1992 void CStringChecker::evalStrncmp(CheckerContext &C, const CallExpr *CE) const { in evalStrncmp()
1997 void CStringChecker::evalStrcasecmp(CheckerContext &C, in evalStrcasecmp()
2003 void CStringChecker::evalStrncasecmp(CheckerContext &C, in evalStrncasecmp()
2009 void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallExpr *CE, in evalStrcmpCommon()
2138 void CStringChecker::evalStrsep(CheckerContext &C, const CallExpr *CE) const { in evalStrsep()
2198 void CStringChecker::evalStdCopy(CheckerContext &C, const CallExpr *CE) const { in evalStdCopy()
2202 void CStringChecker::evalStdCopyBackward(CheckerContext &C, in evalStdCopyBackward()
2207 void CStringChecker::evalStdCopyCommon(CheckerContext &C, in evalStdCopyCommon()
2235 void CStringChecker::evalMemset(CheckerContext &C, const CallExpr *CE) const { in evalMemset()
2285 void CStringChecker::evalBzero(CheckerContext &C, const CallExpr *CE) const { in evalBzero()
2332 CStringChecker::FnCheck CStringChecker::identifyCall(const CallEvent &Call, in identifyCall()
2343 return &CStringChecker::evalStdCopy; in identifyCall()
2345 return &CStringChecker::evalStdCopyBackward; in identifyCall()
2364 bool CStringChecker::evalCall(const CallEvent &Call, CheckerContext &C) const { in evalCall()
2384 void CStringChecker::checkPreStmt(const DeclStmt *DS, CheckerContext &C) const { in checkPreStmt()
2420 CStringChecker::checkRegionChanges(ProgramStateRef state, in checkRegionChanges()
2473 void CStringChecker::checkLiveSymbols(ProgramStateRef state, in checkLiveSymbols()
2488 void CStringChecker::checkDeadSymbols(SymbolReaper &SR, in checkDeadSymbols()
2510 Mgr.registerChecker<CStringChecker>(); in registerCStringModeling()
2519 CStringChecker *checker = mgr.getChecker<CStringChecker>(); \