Skip to content

Commit ec0b1c3

Browse files
committed
checkstl.cpp: small LoopAnalyzer::findAlgo() cleanup
1 parent 0d84dbd commit ec0b1c3

1 file changed

Lines changed: 24 additions & 25 deletions

File tree

lib/checkstl.cpp

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2938,31 +2938,30 @@ namespace {
29382938
{
29392939
if (!valid())
29402940
return "";
2941-
if (mVarsChanged.empty()) {
2942-
if (hasGotoOrBreak())
2943-
return "";
2944-
bool alwaysTrue = true;
2945-
bool alwaysFalse = true;
2946-
auto hasReturn = [](const Token* tok) {
2947-
return Token::simpleMatch(tok, "return");
2948-
};
2949-
findTokens(hasReturn, [&](const Token* tok) {
2950-
const Token* returnTok = tok->astOperand1();
2951-
if (!returnTok || !returnTok->hasKnownIntValue() || !astIsBool(returnTok)) {
2952-
alwaysTrue = false;
2953-
alwaysFalse = false;
2954-
return;
2955-
}
2956-
(returnTok->getKnownIntValue() ? alwaysTrue : alwaysFalse) &= true;
2957-
(returnTok->getKnownIntValue() ? alwaysFalse : alwaysTrue) &= false;
2958-
});
2959-
if (alwaysTrue == alwaysFalse)
2960-
return "";
2961-
if (alwaysTrue)
2962-
return "std::any_of";
2963-
return "std::all_of or std::none_of";
2964-
}
2965-
return "";
2941+
if (!mVarsChanged.empty())
2942+
return "";
2943+
if (hasGotoOrBreak())
2944+
return "";
2945+
bool alwaysTrue = true;
2946+
bool alwaysFalse = true;
2947+
const auto hasReturn = [](const Token* tok) {
2948+
return Token::simpleMatch(tok, "return");
2949+
};
2950+
findTokens(hasReturn, [&](const Token* tok) {
2951+
const Token* returnTok = tok->astOperand1();
2952+
if (!returnTok || !returnTok->hasKnownIntValue() || !astIsBool(returnTok)) {
2953+
alwaysTrue = false;
2954+
alwaysFalse = false;
2955+
return;
2956+
}
2957+
(returnTok->getKnownIntValue() ? alwaysTrue : alwaysFalse) &= true;
2958+
(returnTok->getKnownIntValue() ? alwaysFalse : alwaysTrue) &= false;
2959+
});
2960+
if (alwaysTrue == alwaysFalse)
2961+
return "";
2962+
if (alwaysTrue)
2963+
return "std::any_of";
2964+
return "std::all_of or std::none_of";
29662965
}
29672966
private:
29682967
bool isLocalVar(const Variable* var) const

0 commit comments

Comments
 (0)