aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
diff options
context:
space:
mode:
authorBalazs Benics <benicsbalazs@gmail.com>2023-07-05 08:56:13 +0200
committerBalazs Benics <benicsbalazs@gmail.com>2023-07-05 08:56:13 +0200
commit5c23e27ba19c566b114f8a89a856f1d08238fa96 (patch)
tree4d6de7495932128a7c40ed325d389c6ced76b8e7 /clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
parent3ec12740d0bc1b14bcafb8c9ece9e679f6957e9a (diff)
downloadllvm-5c23e27ba19c566b114f8a89a856f1d08238fa96.zip
llvm-5c23e27ba19c566b114f8a89a856f1d08238fa96.tar.gz
llvm-5c23e27ba19c566b114f8a89a856f1d08238fa96.tar.bz2
[analyzer][NFC] Move away from using raw-for loops inside StaticAnalyzer
I'm involved with the Static Analyzer for the most part. I think we should embrace newer language standard features and gradually move forward. Differential Revision: https://reviews.llvm.org/D154325
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
index 57d3c99..0228e82 100644
--- a/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
@@ -49,6 +49,7 @@
#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/DynamicExtent.h"
+#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
@@ -941,11 +942,9 @@ void StdLibraryFunctionsChecker::RangeConstraint::applyOnWithinRange(
if (Ranges.empty())
return;
- const IntRangeVector &R = getRanges();
- size_t E = R.size();
- for (size_t I = 0; I != E; ++I) {
- const llvm::APSInt &Min = BVF.getValue(R[I].first, ArgT);
- const llvm::APSInt &Max = BVF.getValue(R[I].second, ArgT);
+ for (auto [Start, End] : getRanges()) {
+ const llvm::APSInt &Min = BVF.getValue(Start, ArgT);
+ const llvm::APSInt &Max = BVF.getValue(End, ArgT);
assert(Min <= Max);
if (!F(Min, Max))
return;
@@ -1376,12 +1375,11 @@ bool StdLibraryFunctionsChecker::Signature::matches(
}
// Check the argument types.
- for (size_t I = 0, E = ArgTys.size(); I != E; ++I) {
- QualType ArgTy = ArgTys[I];
+ for (auto [Idx, ArgTy] : llvm::enumerate(ArgTys)) {
if (isIrrelevant(ArgTy))
continue;
QualType FDArgTy =
- RemoveRestrict(FD->getParamDecl(I)->getType().getCanonicalType());
+ RemoveRestrict(FD->getParamDecl(Idx)->getType().getCanonicalType());
if (ArgTy != FDArgTy)
return false;
}