From 0005be1dbf2cec1acfff9ba13f739d942cfb202b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20St=C3=B6neberg?= Date: Tue, 26 Jul 2022 08:28:55 +0200 Subject: [PATCH] some cleanups (#4308) --- lib/valueflow.cpp | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/lib/valueflow.cpp b/lib/valueflow.cpp index cbc4b0c90..43a97bcad 100644 --- a/lib/valueflow.cpp +++ b/lib/valueflow.cpp @@ -417,7 +417,6 @@ static std::vector getParentValueTypes(const Token* tok, if (ftok && argn >= 0) { if (ftok->function()) { std::vector result; - std::vector argsVars = getArgumentVars(ftok, argn); const Token* nameTok = nullptr; for (const Variable* var : getArgumentVars(ftok, argn)) { if (!var) @@ -2064,8 +2063,7 @@ static const std::string& invertAssign(const std::string& assign) {"^=", "^="}}; auto it = lookup.find(assign); if (it == lookup.end()) { - static std::string empty; - return empty; + return emptyString; } else return it->second; @@ -4508,7 +4506,6 @@ static void valueFlowLifetime(TokenList *tokenlist, SymbolDatabase*, ErrorLogger auto captureVariable = [&](const Token* tok2, LifetimeCapture c, std::function pred) { if (varids.count(tok->varId()) > 0) return; - ErrorPath errorPath; if (c == LifetimeCapture::ByReference) { LifetimeStore ls{ tok2, "Lambda captures variable by reference here.", ValueFlow::Value::LifetimeKind::Lambda}; @@ -6260,11 +6257,11 @@ struct SimpleConditionHandler : ConditionHandler { std::vector conds; parseCompareEachInt(tok, [&](const Token* vartok, ValueFlow::Value true_value, ValueFlow::Value false_value) { - Condition cond; if (vartok->hasKnownIntValue()) return; if (vartok->str() == "=" && vartok->astOperand1() && vartok->astOperand2()) vartok = vartok->astOperand1(); + Condition cond; cond.true_values.push_back(true_value); cond.false_values.push_back(false_value); cond.vartok = vartok; @@ -6273,9 +6270,6 @@ struct SimpleConditionHandler : ConditionHandler { if (!conds.empty()) return conds; - Condition cond; - ValueFlow::Value true_value; - ValueFlow::Value false_value; const Token* vartok = nullptr; if (tok->str() == "!") { @@ -6291,6 +6285,7 @@ struct SimpleConditionHandler : ConditionHandler { if (!vartok) return {}; + Condition cond; cond.true_values.emplace_back(tok, 0LL); cond.false_values.emplace_back(tok, 0LL); cond.vartok = vartok; @@ -7682,7 +7677,6 @@ bool isContainerSizeChanged(const Token* tok, const Settings* settings, int dept if (astIsLHS(tok) && Token::simpleMatch(tok->astParent(), "[")) return container->stdAssociativeLike; Library::Container::Action action = astContainerAction(tok); - Library::Container::Yield yield = astContainerYield(tok); switch (action) { case Library::Container::Action::RESIZE: case Library::Container::Action::CLEAR: @@ -7694,8 +7688,10 @@ bool isContainerSizeChanged(const Token* tok, const Settings* settings, int dept return true; case Library::Container::Action::NO_ACTION: // Is this an unknown member function call? - if (astIsLHS(tok) && Token::Match(tok->astParent(), ". %name% (")) + if (astIsLHS(tok) && Token::Match(tok->astParent(), ". %name% (")) { + Library::Container::Yield yield = astContainerYield(tok); return yield == Library::Container::Yield::NO_YIELD; + } break; case Library::Container::Action::FIND: case Library::Container::Action::CHANGE_CONTENT: @@ -7842,9 +7838,6 @@ struct IteratorConditionHandler : SimpleConditionHandler { std::vector parse(const Token* tok, const Settings*) const override { Condition cond; - ValueFlow::Value true_value; - ValueFlow::Value false_value; - if (Token::Match(tok, "==|!=")) { if (!tok->astOperand1() || !tok->astOperand2()) return {}; @@ -8141,12 +8134,12 @@ struct ContainerConditionHandler : ConditionHandler { { std::vector conds; parseCompareEachInt(tok, [&](const Token* vartok, ValueFlow::Value true_value, ValueFlow::Value false_value) { - Condition cond; vartok = settings->library.getContainerFromYield(vartok, Library::Container::Yield::SIZE); if (!vartok) return; true_value.valueType = ValueFlow::Value::ValueType::CONTAINER_SIZE; false_value.valueType = ValueFlow::Value::ValueType::CONTAINER_SIZE; + Condition cond; cond.true_values.push_back(true_value); cond.false_values.push_back(false_value); cond.vartok = vartok; @@ -8155,7 +8148,6 @@ struct ContainerConditionHandler : ConditionHandler { if (!conds.empty()) return conds; - Condition cond; const Token* vartok = nullptr; // Empty check @@ -8172,6 +8164,7 @@ struct ContainerConditionHandler : ConditionHandler { } ValueFlow::Value value(tok, 0LL); value.valueType = ValueFlow::Value::ValueType::CONTAINER_SIZE; + Condition cond; cond.true_values.emplace_back(value); cond.false_values.emplace_back(std::move(value)); cond.vartok = vartok; @@ -8194,6 +8187,7 @@ struct ContainerConditionHandler : ConditionHandler { return {}; ValueFlow::Value value(tok, Token::getStrLength(strtok)); value.valueType = ValueFlow::Value::ValueType::CONTAINER_SIZE; + Condition cond; cond.false_values.emplace_back(value); cond.true_values.emplace_back(std::move(value)); cond.vartok = vartok;