Skip to content

Commit fa561e9

Browse files
authored
mitigated some modernize-use-auto clang-tidy warnings (danmar#5838)
1 parent 00a3ae0 commit fa561e9

13 files changed

+53
-53
lines changed

clang-tidy.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@ These are coding guidelines we do not follow. Some of the checks might be explic
3434
`readability-braces-around-statements`<br/>
3535
`readability-isolate-declaration`<br/>
3636
`modernize-use-trailing-return-type`<br/>
37-
`modernize-use-auto`<br/>
3837
`readability-uppercase-literal-suffix`<br/>
39-
`readability-else-after-return`<br/>
4038
`readability-identifier-length`<br/>
4139

4240
These do not reflect the style we are (currently) enforcing.
@@ -73,7 +71,7 @@ This leads to a mismatch of raw string literals and regular ones and does reduce
7371

7472
`-clang-analyzer-*`<br/>
7573

76-
Disabled because of false positives (needs to file an upstream bug report).
74+
Disabled because of false positives (need to file upstream bug reports). The checks are also quite time consuming.
7775

7876
`misc-non-private-member-variables-in-classes`<br/>
7977

@@ -83,7 +81,6 @@ We intentionally use this.
8381

8482
Leads to lots of "false positives". This seem to enforce a coding guidelines of certain codebases.
8583

86-
8784
`bugprone-easily-swappable-parameters`<br/>
8885

8986
This produces a lot of noise and they are not fixable that easily.
@@ -122,7 +119,6 @@ We run this separately via `clang-include-cleaner` in the `iwyu.yml` workflow as
122119
`misc-throw-by-value-catch-by-reference`<br/>
123120
`readability-avoid-const-params-in-decls`<br/>
124121
`bugprone-signed-char-misuse`<br/>
125-
`readability-redundant-access-specifiers`<br/>
126122
`concurrency-mt-unsafe`<br/>
127123
`misc-use-anonymous-namespace`<br/>
128124
`performance-avoid-endl`<br/>
@@ -153,6 +149,10 @@ To be evaluated (need to enable explicitly).
153149

154150
These apply to codebases which use later standards then C++11 (C++17 is used when building with Qt6) so we cannot simply apply them.
155151

152+
`modernize-use-auto`<br/>
153+
154+
This cannot be enabled as it might lead to changes in the constness of iterators - see https://github.com/llvm/llvm-project/issues/84324.
155+
156156
### Disabled for performance reasons
157157

158158
`portability-std-allocator-const`<br/>
@@ -183,7 +183,7 @@ We are not using SIMD instructions and it suggests to use `std::experiemental::`
183183

184184
It does not seem to produce any warnings for us (needs to be investigated) and it is one of the more expensive checks.
185185

186-
`misc-unused-using-decls`
186+
`misc-unused-using-decls`<br/>
187187

188188
This is the most expensive check for several files and it is providing much in terms of code quality. Reported upstream as https://github.com/llvm/llvm-project/issues/72300.
189189

cli/processexecutor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ bool ProcessExecutor::handleRead(int rpipe, unsigned int &result, const std::str
184184
bool res = true;
185185
if (type == PipeWriter::REPORT_OUT) {
186186
// the first character is the color
187-
const Color c = static_cast<Color>(buf[0]);
187+
const auto c = static_cast<Color>(buf[0]);
188188
// TODO: avoid string copy
189189
mErrorLogger.reportOut(buf.substr(1), c);
190190
} else if (type == PipeWriter::REPORT_ERROR) {

lib/checkbufferoverrun.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -997,7 +997,7 @@ bool CheckBufferOverrun::analyseWholeProgram(const CTU::FileInfo *ctu, const std
997997
const std::map<std::string, std::list<const CTU::FileInfo::CallBase *>> callsMap = ctu->getCallsMap();
998998

999999
for (const Check::FileInfo* fi1 : fileInfo) {
1000-
const MyFileInfo *fi = dynamic_cast<const MyFileInfo*>(fi1);
1000+
const auto *fi = dynamic_cast<const MyFileInfo*>(fi1);
10011001
if (!fi)
10021002
continue;
10031003
for (const CTU::FileInfo::UnsafeUsage &unsafeUsage : fi->unsafeArrayIndex)

lib/checkclass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3652,7 +3652,7 @@ bool CheckClass::analyseWholeProgram(const CTU::FileInfo *ctu, const std::list<C
36523652
logChecker("CheckClass::analyseWholeProgram");
36533653

36543654
for (const Check::FileInfo* fi1 : fileInfo) {
3655-
const MyFileInfo *fi = dynamic_cast<const MyFileInfo*>(fi1);
3655+
const auto *fi = dynamic_cast<const MyFileInfo*>(fi1);
36563656
if (!fi)
36573657
continue;
36583658
for (const MyFileInfo::NameLoc &nameLoc : fi->classDefinitions) {

lib/checknullpointer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ bool CheckNullPointer::analyseWholeProgram(const CTU::FileInfo *ctu, const std::
614614
const std::map<std::string, std::list<const CTU::FileInfo::CallBase *>> callsMap = ctu->getCallsMap();
615615

616616
for (const Check::FileInfo* fi1 : fileInfo) {
617-
const MyFileInfo *fi = dynamic_cast<const MyFileInfo*>(fi1);
617+
const auto *fi = dynamic_cast<const MyFileInfo*>(fi1);
618618
if (!fi)
619619
continue;
620620
for (const CTU::FileInfo::UnsafeUsage &unsafeUsage : fi->unsafeUsage) {

lib/checkuninitvar.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1730,7 +1730,7 @@ bool CheckUninitVar::analyseWholeProgram(const CTU::FileInfo *ctu, const std::li
17301730
const std::map<std::string, std::list<const CTU::FileInfo::CallBase *>> callsMap = ctu->getCallsMap();
17311731

17321732
for (const Check::FileInfo* fi1 : fileInfo) {
1733-
const MyFileInfo *fi = dynamic_cast<const MyFileInfo*>(fi1);
1733+
const auto *fi = dynamic_cast<const MyFileInfo*>(fi1);
17341734
if (!fi)
17351735
continue;
17361736
for (const CTU::FileInfo::UnsafeUsage &unsafeUsage : fi->unsafeUsage) {

lib/checkunusedvar.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ void Variables::alias(nonneg int varid1, nonneg int varid2, bool replace)
197197

198198
if (replace) {
199199
// remove var1 from all aliases
200-
for (std::set<nonneg int>::const_iterator i = var1->_aliases.cbegin(); i != var1->_aliases.cend(); ++i) {
200+
for (auto i = var1->_aliases.cbegin(); i != var1->_aliases.cend(); ++i) {
201201
VariableUsage *temp = find(*i);
202202

203203
if (temp)
@@ -209,7 +209,7 @@ void Variables::alias(nonneg int varid1, nonneg int varid2, bool replace)
209209
}
210210

211211
// var1 gets all var2s aliases
212-
for (std::set<nonneg int>::const_iterator i = var2->_aliases.cbegin(); i != var2->_aliases.cend(); ++i) {
212+
for (auto i = var2->_aliases.cbegin(); i != var2->_aliases.cend(); ++i) {
213213
if (*i != varid1)
214214
var1->_aliases.insert(*i);
215215
}
@@ -229,7 +229,7 @@ void Variables::clearAliases(nonneg int varid)
229229

230230
if (usage) {
231231
// remove usage from all aliases
232-
for (std::set<nonneg int>::const_iterator i = usage->_aliases.cbegin(); i != usage->_aliases.cend(); ++i) {
232+
for (auto i = usage->_aliases.cbegin(); i != usage->_aliases.cend(); ++i) {
233233
VariableUsage *temp = find(*i);
234234

235235
if (temp)
@@ -246,7 +246,7 @@ void Variables::eraseAliases(nonneg int varid)
246246
VariableUsage *usage = find(varid);
247247

248248
if (usage) {
249-
for (std::set<nonneg int>::const_iterator aliases = usage->_aliases.cbegin(); aliases != usage->_aliases.cend(); ++aliases)
249+
for (auto aliases = usage->_aliases.cbegin(); aliases != usage->_aliases.cend(); ++aliases)
250250
erase(*aliases);
251251
}
252252
}
@@ -326,7 +326,7 @@ void Variables::writeAliases(nonneg int varid, const Token* tok)
326326
VariableUsage *usage = find(varid);
327327

328328
if (usage) {
329-
for (std::set<nonneg int>::const_iterator aliases = usage->_aliases.cbegin(); aliases != usage->_aliases.cend(); ++aliases) {
329+
for (auto aliases = usage->_aliases.cbegin(); aliases != usage->_aliases.cend(); ++aliases) {
330330
VariableUsage *aliased = find(*aliases);
331331

332332
if (aliased) {
@@ -351,7 +351,7 @@ void Variables::use(nonneg int varid, const Token* tok)
351351
usage->use();
352352
usage->_lastAccess = tok;
353353

354-
for (std::set<nonneg int>::const_iterator aliases = usage->_aliases.cbegin(); aliases != usage->_aliases.cend(); ++aliases) {
354+
for (auto aliases = usage->_aliases.cbegin(); aliases != usage->_aliases.cend(); ++aliases) {
355355
VariableUsage *aliased = find(*aliases);
356356

357357
if (aliased) {
@@ -372,7 +372,7 @@ void Variables::modified(nonneg int varid, const Token* tok)
372372
usage->_modified = true;
373373
usage->_lastAccess = tok;
374374

375-
for (std::set<nonneg int>::const_iterator aliases = usage->_aliases.cbegin(); aliases != usage->_aliases.cend(); ++aliases) {
375+
for (auto aliases = usage->_aliases.cbegin(); aliases != usage->_aliases.cend(); ++aliases) {
376376
VariableUsage *aliased = find(*aliases);
377377

378378
if (aliased) {
@@ -693,7 +693,7 @@ void CheckUnusedVar::checkFunctionVariableUsage_iterateScopes(const Scope* const
693693
// Find declarations if the scope is executable..
694694
if (scope->isExecutable()) {
695695
// Find declarations
696-
for (std::list<Variable>::const_iterator i = scope->varlist.cbegin(); i != scope->varlist.cend(); ++i) {
696+
for (auto i = scope->varlist.cbegin(); i != scope->varlist.cend(); ++i) {
697697
if (i->isThrow() || i->isExtern())
698698
continue;
699699
Variables::VariableType type = Variables::none;
@@ -1327,7 +1327,7 @@ void CheckUnusedVar::checkFunctionVariableUsage()
13271327

13281328

13291329
// Check usage of all variables in the current scope..
1330-
for (std::map<nonneg int, Variables::VariableUsage>::const_iterator it = variables.varUsage().cbegin();
1330+
for (auto it = variables.varUsage().cbegin();
13311331
it != variables.varUsage().cend();
13321332
++it) {
13331333
const Variables::VariableUsage &usage = it->second;

lib/cppcheck.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1708,8 +1708,8 @@ void CppCheck::analyseClangTidy(const FileSettings &fileSettings)
17081708
const std::string errorString = line.substr(endErrorPos, line.length());
17091709

17101710
std::string fixedpath = Path::simplifyPath(line.substr(0, endNamePos));
1711-
const int64_t lineNumber = strToInt<int64_t>(lineNumString);
1712-
const int64_t column = strToInt<int64_t>(columnNumString);
1711+
const auto lineNumber = strToInt<int64_t>(lineNumString);
1712+
const auto column = strToInt<int64_t>(columnNumString);
17131713
fixedpath = Path::toNativeSeparators(std::move(fixedpath));
17141714

17151715
ErrorMessage errmsg;

lib/symboldatabase.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1741,7 +1741,7 @@ void SymbolDatabase::createSymbolDatabaseExprIds()
17411741
setParentExprId(tok, exprIdMap, id);
17421742
}
17431743
}
1744-
for (Token* tok = const_cast<Token*>(scope->bodyStart); tok != scope->bodyEnd; tok = tok->next()) {
1744+
for (auto* tok = const_cast<Token*>(scope->bodyStart); tok != scope->bodyEnd; tok = tok->next()) {
17451745
if (tok->varId() == 0 && tok->exprId() > 0 && tok->astParent() && !tok->astOperand1() && !tok->astOperand2()) {
17461746
if (tok->isNumber() || tok->isKeyword() || Token::Match(tok->astParent(), ".|::") ||
17471747
(Token::simpleMatch(tok->astParent(), "(") && precedes(tok, tok->astParent())))
@@ -2121,7 +2121,7 @@ namespace {
21212121

21222122
void SymbolDatabase::validateVariables() const
21232123
{
2124-
for (std::vector<const Variable *>::const_iterator iter = mVariableList.cbegin(); iter!=mVariableList.cend(); ++iter) {
2124+
for (auto iter = mVariableList.cbegin(); iter!=mVariableList.cend(); ++iter) {
21252125
const Variable * const var = *iter;
21262126
if (var) {
21272127
if (!var->scope()) {
@@ -2415,7 +2415,7 @@ void Variable::setValueType(const ValueType &valueType)
24152415
if (declType && !declType->next()->valueType())
24162416
return;
24172417
}
2418-
ValueType* vt = new ValueType(valueType);
2418+
auto* vt = new ValueType(valueType);
24192419
delete mValueType;
24202420
mValueType = vt;
24212421
if ((mValueType->pointer > 0) && (!isArray() || Token::Match(mNameToken->previous(), "( * %name% )")))
@@ -3632,7 +3632,7 @@ bool Type::hasCircularDependencies(std::set<BaseInfo>* ancestors) const
36323632
if (!ancestors) {
36333633
ancestors=&knownAncestors;
36343634
}
3635-
for (std::vector<BaseInfo>::const_iterator parent=derivedFrom.cbegin(); parent!=derivedFrom.cend(); ++parent) {
3635+
for (auto parent=derivedFrom.cbegin(); parent!=derivedFrom.cend(); ++parent) {
36363636
if (!parent->type)
36373637
continue;
36383638
if (this==parent->type)

lib/tokenize.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3862,7 +3862,7 @@ void Tokenizer::arraySizeAfterValueFlow()
38623862
}
38633863
if (maxIndex >= 0) {
38643864
// insert array size
3865-
Token* tok = const_cast<Token*>(var->nameToken()->next());
3865+
auto* tok = const_cast<Token*>(var->nameToken()->next());
38663866
tok->insertToken(std::to_string(maxIndex + 1));
38673867
// ast
38683868
tok->astOperand2(tok->next());

0 commit comments

Comments
 (0)