summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
index 4203f790e21..0cf7056a078 100644
--- a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
@@ -1706,13 +1706,12 @@ void CStringChecker::evalStrcpyCommon(CheckerContext &C, const CallExpr *CE,
} else {
if (appendK == ConcatFnKind::none) {
// strlcpy returns strlen(src)
- StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, *strLengthNL);
- } else if (dstStrLengthNL) {
+ StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, strLength);
+ } else {
// strlcat returns strlen(src) + strlen(dst)
- SVal retSize = svalBuilder.evalBinOpNN(
- state, BO_Add, *strLengthNL, *dstStrLengthNL, sizeTy);
- StateZeroSize =
- StateZeroSize->BindExpr(CE, LCtx, *(retSize.getAs<NonLoc>()));
+ SVal retSize = svalBuilder.evalBinOp(
+ state, BO_Add, strLength, dstStrLength, sizeTy);
+ StateZeroSize = StateZeroSize->BindExpr(CE, LCtx, retSize);
}
}
C.addTransition(StateZeroSize);
OpenPOWER on IntegriCloud