summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
diff options
context:
space:
mode:
authorLenny Maiorani <lenny@colorado.edu>2011-04-28 19:31:12 +0000
committerLenny Maiorani <lenny@colorado.edu>2011-04-28 19:31:12 +0000
commit18470e32870a408960345419df788675edcd7b77 (patch)
tree6494bfe5cfac0df59794ed0c9fe3ece420be7de8 /clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
parent414a2c0951e107cb326b7e2e6d8e400658d7eb27 (diff)
downloadbcm5719-llvm-18470e32870a408960345419df788675edcd7b77.tar.gz
bcm5719-llvm-18470e32870a408960345419df788675edcd7b77.zip
Use StringRef::substr() and unbounded StringRef::compare() instead of bounded version of StringRef::compare() because bounded version of StringRef::compare() is going to be removed.
llvm-svn: 130425
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
index 534b887f3b2..a6a256a87bc 100644
--- a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
@@ -1190,7 +1190,14 @@ void CStringChecker::evalStrcmpCommon(CheckerContext &C, const CallExpr *CE,
// For now, give up.
return;
} else {
- result = s1StrRef.compare(s2StrRef, (size_t)lenInt.getLimitedValue());
+ // Create substrings of each to compare the prefix.
+ llvm::StringRef s1SubStr =
+ s1StrRef.substr(0, (size_t)lenInt.getLimitedValue());
+ llvm::StringRef s2SubStr =
+ s2StrRef.substr(0, (size_t)lenInt.getLimitedValue());
+
+ // Compare the substrings.
+ result = s1SubStr.compare(s2SubStr);
}
} else {
// Compare string 1 to string 2 the same way strcmp() does.
OpenPOWER on IntegriCloud