Skip to content

Commit 1cfe49e

Browse files
authored
use const_iterator where possible (cppcheck-opensource#4662)
1 parent 3136a50 commit 1cfe49e

55 files changed

Lines changed: 415 additions & 415 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cli/cmdlineparser.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ static bool addPathsToSet(const std::string& fileName, std::set<std::string>* se
106106
std::list<std::string> templist;
107107
if (!addIncludePathsToList(fileName, &templist))
108108
return false;
109-
set->insert(templist.begin(), templist.end());
109+
set->insert(templist.cbegin(), templist.cend());
110110
return true;
111111
}
112112

@@ -647,7 +647,7 @@ bool CmdLineParser::parseFromArgs(int argc, const char* const argv[])
647647
mSettings->libraries.emplace_back(lib);
648648

649649
const auto& excludedPaths = mSettings->project.guiProject.excludedPaths;
650-
std::copy(excludedPaths.begin(), excludedPaths.end(), std::back_inserter(mIgnoredPaths));
650+
std::copy(excludedPaths.cbegin(), excludedPaths.cend(), std::back_inserter(mIgnoredPaths));
651651

652652
const std::string platform(mSettings->project.guiProject.platform);
653653

@@ -839,8 +839,8 @@ bool CmdLineParser::parseFromArgs(int argc, const char* const argv[])
839839
std::string message("couldn't open the file: \"");
840840
message += filename;
841841
message += "\".";
842-
if (std::count(filename.begin(), filename.end(), ',') > 0 ||
843-
std::count(filename.begin(), filename.end(), '.') > 1) {
842+
if (std::count(filename.cbegin(), filename.cend(), ',') > 0 ||
843+
std::count(filename.cbegin(), filename.cend(), '.') > 1) {
844844
// If user tried to pass multiple files (we can only guess that)
845845
// e.g. like this: --suppressions-list=a.txt,b.txt
846846
// print more detailed error message to tell user how he can solve the problem

cli/cppcheckexecutor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ bool CppCheckExecutor::parseFromArgs(CppCheck *cppcheck, int argc, const char* c
131131

132132
// Output a warning for the user if he tries to exclude headers
133133
const std::vector<std::string>& ignored = parser.getIgnoredPaths();
134-
const bool warn = std::any_of(ignored.begin(), ignored.end(), [](const std::string& i) {
134+
const bool warn = std::any_of(ignored.cbegin(), ignored.cend(), [](const std::string& i) {
135135
return Path::isHeader(i);
136136
});
137137
if (warn) {
@@ -152,7 +152,7 @@ bool CppCheckExecutor::parseFromArgs(CppCheck *cppcheck, int argc, const char* c
152152
std::list<ImportProject::FileSettings> newList;
153153

154154
const std::list<ImportProject::FileSettings>& fileSettings = settings.project.fileSettings;
155-
std::copy_if(fileSettings.begin(), fileSettings.end(), std::back_inserter(newList), [&](const ImportProject::FileSettings& fs) {
155+
std::copy_if(fileSettings.cbegin(), fileSettings.cend(), std::back_inserter(newList), [&](const ImportProject::FileSettings& fs) {
156156
return matchglobs(mSettings->fileFilters, fs.filename);
157157
});
158158
if (!newList.empty())
@@ -321,7 +321,7 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck)
321321
// Single process
322322
settings.jointSuppressionReport = true;
323323

324-
const std::size_t totalfilesize = std::accumulate(mFiles.begin(), mFiles.end(), std::size_t(0), [](std::size_t v, const std::pair<std::string, std::size_t>& f) {
324+
const std::size_t totalfilesize = std::accumulate(mFiles.cbegin(), mFiles.cend(), std::size_t(0), [](std::size_t v, const std::pair<std::string, std::size_t>& f) {
325325
return v + f.second;
326326
});
327327

cli/processexecutor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ int ProcessExecutor::handleRead(int rpipe, unsigned int &result)
171171
if (!mSettings.nomsg.isSuppressed(msg.toSuppressionsErrorMessage())) {
172172
// Alert only about unique errors
173173
std::string errmsg = msg.toString(mSettings.verbose);
174-
if (std::find(mErrorList.begin(), mErrorList.end(), errmsg) == mErrorList.end()) {
174+
if (std::find(mErrorList.cbegin(), mErrorList.cend(), errmsg) == mErrorList.cend()) {
175175
mErrorList.emplace_back(std::move(errmsg));
176176
if (type == PipeWriter::REPORT_ERROR)
177177
mErrorLogger.reportErr(msg);
@@ -218,7 +218,7 @@ unsigned int ProcessExecutor::check()
218218
unsigned int fileCount = 0;
219219
unsigned int result = 0;
220220

221-
const std::size_t totalfilesize = std::accumulate(mFiles.begin(), mFiles.end(), std::size_t(0), [](std::size_t v, const std::pair<std::string, std::size_t>& p) {
221+
const std::size_t totalfilesize = std::accumulate(mFiles.cbegin(), mFiles.cend(), std::size_t(0), [](std::size_t v, const std::pair<std::string, std::size_t>& p) {
222222
return v + p.second;
223223
});
224224

@@ -298,7 +298,7 @@ unsigned int ProcessExecutor::check()
298298
struct timeval tv; // for every second polling of load average condition
299299
tv.tv_sec = 1;
300300
tv.tv_usec = 0;
301-
const int r = select(*std::max_element(rpipes.begin(), rpipes.end()) + 1, &rfds, nullptr, nullptr, &tv);
301+
const int r = select(*std::max_element(rpipes.cbegin(), rpipes.cend()) + 1, &rfds, nullptr, nullptr, &tv);
302302

303303
if (r > 0) {
304304
std::list<int>::iterator rp = rpipes.begin();

cli/threadexecutor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class ThreadExecutor::SyncLogForwarder : public ErrorLogger
5656
mItNextFileSettings = mThreadExecutor.mSettings.project.fileSettings.begin();
5757

5858
mTotalFiles = files.size() + mThreadExecutor.mSettings.project.fileSettings.size();
59-
mTotalFileSize = std::accumulate(files.begin(), files.end(), std::size_t(0), [](std::size_t v, const std::pair<std::string, std::size_t>& p) {
59+
mTotalFileSize = std::accumulate(files.cbegin(), files.cend(), std::size_t(0), [](std::size_t v, const std::pair<std::string, std::size_t>& p) {
6060
return v + p.second;
6161
});
6262
}
@@ -105,7 +105,7 @@ class ThreadExecutor::SyncLogForwarder : public ErrorLogger
105105
std::string errmsg = msg.toString(mThreadExecutor.mSettings.verbose);
106106

107107
std::lock_guard<std::mutex> lg(mErrorSync);
108-
if (std::find(mThreadExecutor.mErrorList.begin(), mThreadExecutor.mErrorList.end(), errmsg) == mThreadExecutor.mErrorList.end()) {
108+
if (std::find(mThreadExecutor.mErrorList.cbegin(), mThreadExecutor.mErrorList.cend(), errmsg) == mThreadExecutor.mErrorList.cend()) {
109109
mThreadExecutor.mErrorList.emplace_back(std::move(errmsg));
110110
reportError = true;
111111
}
@@ -159,7 +159,7 @@ unsigned int STDCALL ThreadExecutor::threadProc(SyncLogForwarder* logForwarder)
159159
logForwarder->mFileSync.lock();
160160

161161
for (;;) {
162-
if (itFile == logForwarder->mThreadExecutor.mFiles.end() && itFileSettings == logForwarder->mThreadExecutor.mSettings.project.fileSettings.end()) {
162+
if (itFile == logForwarder->mThreadExecutor.mFiles.cend() && itFileSettings == logForwarder->mThreadExecutor.mSettings.project.fileSettings.cend()) {
163163
logForwarder->mFileSync.unlock();
164164
break;
165165
}

gui/checkthread.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ void CheckThread::parseClangErrors(const QString &tool, const QString &file0, QS
398398
continue;
399399

400400
std::list<ErrorMessage::FileLocation> callstack;
401-
std::transform(e.errorPath.begin(), e.errorPath.end(), std::back_inserter(callstack), [](const QErrorPathItem& path) {
401+
std::transform(e.errorPath.cbegin(), e.errorPath.cend(), std::back_inserter(callstack), [](const QErrorPathItem& path) {
402402
return ErrorMessage::FileLocation(path.file.toStdString(), path.info.toStdString(), path.line, path.column);
403403
});
404404
const std::string f0 = file0.toStdString();
@@ -411,7 +411,7 @@ void CheckThread::parseClangErrors(const QString &tool, const QString &file0, QS
411411

412412
bool CheckThread::isSuppressed(const Suppressions::ErrorMessage &errorMessage) const
413413
{
414-
return std::any_of(mSuppressions.begin(), mSuppressions.end(), [&](const Suppressions::Suppression& s) {
414+
return std::any_of(mSuppressions.cbegin(), mSuppressions.cend(), [&](const Suppressions::Suppression& s) {
415415
return s.isSuppressed(errorMessage);
416416
});
417417
}

gui/filelist.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ void FileList::addExcludeList(const QStringList &paths)
110110
static std::vector<std::string> toStdStringList(const QStringList &stringList)
111111
{
112112
std::vector<std::string> ret;
113-
std::transform(stringList.begin(), stringList.end(), std::back_inserter(ret), [](const QString& s) {
113+
std::transform(stringList.cbegin(), stringList.cend(), std::back_inserter(ret), [](const QString& s) {
114114
return s.toStdString();
115115
});
116116
return ret;

gui/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ int main(int argc, char *argv[])
5858

5959
// Set data dir..
6060
const QStringList args = QApplication::arguments();
61-
auto it = std::find_if(args.begin(), args.end(), [](const QString& arg) {
61+
auto it = std::find_if(args.cbegin(), args.cend(), [](const QString& arg) {
6262
return arg.startsWith("--data-dir=");
6363
});
6464
if (it != args.end()) {

gui/mainwindow.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ void MainWindow::doAnalyzeProject(ImportProject p, const bool checkLibrary, cons
466466
if (mProjectFile) {
467467
std::vector<std::string> v;
468468
const QStringList excluded = mProjectFile->getExcludedPaths();
469-
std::transform(excluded.begin(), excluded.end(), std::back_inserter(v), [](const QString& e) {
469+
std::transform(excluded.cbegin(), excluded.cend(), std::back_inserter(v), [](const QString& e) {
470470
return e.toStdString();
471471
});
472472
p.ignorePaths(v);
@@ -569,7 +569,7 @@ void MainWindow::doAnalyzeFiles(const QStringList &files, const bool checkLibrar
569569
if (!checkSettings.buildDir.empty()) {
570570
checkSettings.loadSummaries();
571571
std::list<std::string> sourcefiles;
572-
std::transform(fileNames.begin(), fileNames.end(), std::back_inserter(sourcefiles), [](const QString& s) {
572+
std::transform(fileNames.cbegin(), fileNames.cend(), std::back_inserter(sourcefiles), [](const QString& s) {
573573
return s.toStdString();
574574
});
575575
AnalyzerInformation::writeFilesTxt(checkSettings.buildDir, sourcefiles, checkSettings.userDefines, checkSettings.project.fileSettings);

lib/astutils.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ static std::vector<const Token*> getParentMembers(const Token* tok)
590590
for (const Token* tok2 : astFlatten(parent, ".")) {
591591
if (Token::simpleMatch(tok2, "(") && Token::simpleMatch(tok2->astOperand1(), ".")) {
592592
std::vector<const Token*> sub = getParentMembers(tok2->astOperand1());
593-
result.insert(result.end(), sub.begin(), sub.end());
593+
result.insert(result.end(), sub.cbegin(), sub.cend());
594594
}
595595
result.push_back(tok2);
596596
}
@@ -603,7 +603,7 @@ const Token* getParentLifetime(bool cpp, const Token* tok, const Library* librar
603603
if (members.size() < 2)
604604
return tok;
605605
// Find the first local variable or temporary
606-
auto it = std::find_if(members.rbegin(), members.rend(), [&](const Token* tok2) {
606+
auto it = std::find_if(members.crbegin(), members.crend(), [&](const Token* tok2) {
607607
const Variable* var = tok2->variable();
608608
if (var) {
609609
return var->isLocal() || var->isArgument();
@@ -614,7 +614,7 @@ const Token* getParentLifetime(bool cpp, const Token* tok, const Library* librar
614614
if (it == members.rend())
615615
return tok;
616616
// If any of the submembers are borrowed types then stop
617-
if (std::any_of(it.base() - 1, members.end() - 1, [&](const Token* tok2) {
617+
if (std::any_of(it.base() - 1, members.cend() - 1, [&](const Token* tok2) {
618618
if (astIsPointer(tok2) || astIsContainerView(tok2) || astIsIterator(tok2))
619619
return true;
620620
if (!astIsUniqueSmartPointer(tok2)) {
@@ -700,7 +700,7 @@ std::vector<ValueType> getParentValueTypes(const Token* tok, const Settings* set
700700
if (scope && scope->numConstructors == 0 && t->derivedFrom.empty() &&
701701
(t->isClassType() || t->isStructType()) && numberOfArguments(ftok) < scope->varlist.size()) {
702702
assert(argn < scope->varlist.size());
703-
auto it = std::next(scope->varlist.begin(), argn);
703+
auto it = std::next(scope->varlist.cbegin(), argn);
704704
if (it->valueType())
705705
return {*it->valueType()};
706706
}
@@ -1141,7 +1141,7 @@ static void followVariableExpressionError(const Token *tok1, const Token *tok2,
11411141
if (!tok2)
11421142
return;
11431143
ErrorPathItem item = std::make_pair(tok2, "'" + tok1->str() + "' is assigned value '" + tok2->expressionString() + "' here.");
1144-
if (std::find(errors->begin(), errors->end(), item) != errors->end())
1144+
if (std::find(errors->cbegin(), errors->cend(), item) != errors->cend())
11451145
return;
11461146
errors->push_back(std::move(item));
11471147
}
@@ -1201,17 +1201,17 @@ SmallVector<ReferenceToken> followAllReferences(const Token* tok,
12011201
const Token* tok2 = tok->astOperand2();
12021202

12031203
auto refs = followAllReferences(tok2->astOperand1(), temporary, inconclusive, errors, depth - 1);
1204-
result.insert(refs.begin(), refs.end());
1204+
result.insert(refs.cbegin(), refs.cend());
12051205
refs = followAllReferences(tok2->astOperand2(), temporary, inconclusive, errors, depth - 1);
1206-
result.insert(refs.begin(), refs.end());
1206+
result.insert(refs.cbegin(), refs.cend());
12071207

12081208
if (!inconclusive && result.size() != 1) {
12091209
refs_result.push_back({tok, std::move(errors)});
12101210
return refs_result;
12111211
}
12121212

12131213
if (!result.empty()) {
1214-
refs_result.insert(refs_result.end(), result.begin(), result.end());
1214+
refs_result.insert(refs_result.end(), result.cbegin(), result.cend());
12151215
return refs_result;
12161216
}
12171217

@@ -1251,7 +1251,7 @@ SmallVector<ReferenceToken> followAllReferences(const Token* tok,
12511251
er.emplace_back(tok->previous(), "Called function passing '" + argTok->expressionString() + "'.");
12521252
auto refs =
12531253
followAllReferences(argTok, temporary, inconclusive, std::move(er), depth - returns.size());
1254-
result.insert(refs.begin(), refs.end());
1254+
result.insert(refs.cbegin(), refs.cend());
12551255
if (!inconclusive && result.size() > 1) {
12561256
refs_result.push_back({tok, std::move(errors)});
12571257
return refs_result;
@@ -1260,7 +1260,7 @@ SmallVector<ReferenceToken> followAllReferences(const Token* tok,
12601260
}
12611261
}
12621262
if (!result.empty()) {
1263-
refs_result.insert(refs_result.end(), result.begin(), result.end());
1263+
refs_result.insert(refs_result.end(), result.cbegin(), result.cend());
12641264
return refs_result;
12651265
}
12661266
}
@@ -1297,13 +1297,13 @@ static bool compareKnownValue(const Token * const tok1, const Token * const tok2
12971297
{
12981298
static const auto isKnownFn = std::mem_fn(&ValueFlow::Value::isKnown);
12991299

1300-
const auto v1 = std::find_if(tok1->values().begin(), tok1->values().end(), isKnownFn);
1300+
const auto v1 = std::find_if(tok1->values().cbegin(), tok1->values().cend(), isKnownFn);
13011301
if (v1 == tok1->values().end()) {
13021302
return false;
13031303
}
13041304
if (v1->isNonValue() || v1->isContainerSizeValue() || v1->isSymbolicValue())
13051305
return false;
1306-
const auto v2 = std::find_if(tok2->values().begin(), tok2->values().end(), isKnownFn);
1306+
const auto v2 = std::find_if(tok2->values().cbegin(), tok2->values().cend(), isKnownFn);
13071307
if (v2 == tok2->values().end()) {
13081308
return false;
13091309
}
@@ -1419,7 +1419,7 @@ bool isUsedAsBool(const Token* const tok)
14191419
return true;
14201420
if (!Token::Match(parent, "%cop%")) {
14211421
std::vector<ValueType> vtParents = getParentValueTypes(tok);
1422-
return std::any_of(vtParents.begin(), vtParents.end(), [&](const ValueType& vt) {
1422+
return std::any_of(vtParents.cbegin(), vtParents.cend(), [&](const ValueType& vt) {
14231423
return vt.pointer == 0 && vt.type == ValueType::BOOL;
14241424
});
14251425
}
@@ -1837,7 +1837,7 @@ bool isOppositeExpression(bool cpp, const Token * const tok1, const Token * cons
18371837

18381838
static bool functionModifiesArguments(const Function* f)
18391839
{
1840-
return std::any_of(f->argumentList.begin(), f->argumentList.end(), [](const Variable& var) {
1840+
return std::any_of(f->argumentList.cbegin(), f->argumentList.cend(), [](const Variable& var) {
18411841
if (var.isReference() || var.isPointer())
18421842
return !var.isConst();
18431843
return true;
@@ -1865,7 +1865,7 @@ bool isConstFunctionCall(const Token* ftok, const Library& library)
18651865
// Check for const overloaded function that just return the const version
18661866
if (!Function::returnsConst(f)) {
18671867
std::vector<const Function*> fs = f->getOverloadedFunctions();
1868-
if (std::any_of(fs.begin(), fs.end(), [&](const Function* g) {
1868+
if (std::any_of(fs.cbegin(), fs.cend(), [&](const Function* g) {
18691869
if (f == g)
18701870
return false;
18711871
if (f->argumentList.size() != g->argumentList.size())
@@ -1914,7 +1914,7 @@ bool isConstFunctionCall(const Token* ftok, const Library& library)
19141914
std::vector<const Token*> args = getArguments(ftok);
19151915
if (args.empty())
19161916
return false;
1917-
return constMember && std::all_of(args.begin(), args.end(), [](const Token* tok) {
1917+
return constMember && std::all_of(args.cbegin(), args.cend(), [](const Token* tok) {
19181918
const Variable* var = tok->variable();
19191919
if (var)
19201920
return var->isConst();
@@ -2265,7 +2265,7 @@ std::vector<const Variable*> getArgumentVars(const Token* tok, int argnr)
22652265
const bool tokIsBrace = Token::simpleMatch(tok, "{");
22662266
// Aggregate constructor
22672267
if (tokIsBrace && typeScope->numConstructors == 0 && argnr < typeScope->varlist.size()) {
2268-
auto it = std::next(typeScope->varlist.begin(), argnr);
2268+
auto it = std::next(typeScope->varlist.cbegin(), argnr);
22692269
return {&*it};
22702270
}
22712271
const int argCount = numberOfArguments(tok);
@@ -2714,15 +2714,15 @@ bool isVariableChanged(const Variable * var, const Settings *settings, bool cpp,
27142714
bool isVariablesChanged(const Token* start,
27152715
const Token* end,
27162716
int indirect,
2717-
std::vector<const Variable*> vars,
2717+
const std::vector<const Variable*> &vars,
27182718
const Settings* settings,
27192719
bool cpp)
27202720
{
27212721
std::set<int> varids;
2722-
std::transform(vars.begin(), vars.end(), std::inserter(varids, varids.begin()), [](const Variable* var) {
2722+
std::transform(vars.cbegin(), vars.cend(), std::inserter(varids, varids.begin()), [](const Variable* var) {
27232723
return var->declarationId();
27242724
});
2725-
const bool globalvar = std::any_of(vars.begin(), vars.end(), [](const Variable* var) {
2725+
const bool globalvar = std::any_of(vars.cbegin(), vars.cend(), [](const Variable* var) {
27262726
return var->isGlobal();
27272727
});
27282728
for (const Token* tok = start; tok != end; tok = tok->next()) {
@@ -2840,12 +2840,12 @@ std::vector<const Token*> getArguments(const Token* ftok) {
28402840

28412841
int getArgumentPos(const Variable* var, const Function* f)
28422842
{
2843-
auto arg_it = std::find_if(f->argumentList.begin(), f->argumentList.end(), [&](const Variable& v) {
2843+
auto arg_it = std::find_if(f->argumentList.cbegin(), f->argumentList.cend(), [&](const Variable& v) {
28442844
return v.nameToken() == var->nameToken();
28452845
});
28462846
if (arg_it == f->argumentList.end())
28472847
return -1;
2848-
return std::distance(f->argumentList.begin(), arg_it);
2848+
return std::distance(f->argumentList.cbegin(), arg_it);
28492849
}
28502850

28512851
bool isIteratorPair(std::vector<const Token*> args)
@@ -2954,7 +2954,7 @@ bool isConstVarExpression(const Token *tok, std::function<bool(const Token*)> sk
29542954
std::vector<const Token *> args = getArguments(tok);
29552955
if (args.empty() && tok->previous()->function() && tok->previous()->function()->isConstexpr())
29562956
return true;
2957-
return !args.empty() && std::all_of(args.begin(), args.end(), [&](const Token* t) {
2957+
return !args.empty() && std::all_of(args.cbegin(), args.cend(), [&](const Token* t) {
29582958
return isConstVarExpression(t, skipPredicate);
29592959
});
29602960
}

0 commit comments

Comments
 (0)