Refactorization: Removed unused functions
This commit is contained in:
parent
ef82897af5
commit
6a811eec1c
|
@ -393,43 +393,6 @@ void CheckAutoVariables::errorUselessAssignmentPtrArg(const Token *tok)
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
static bool astHasAutoResult(const Token *tok)
|
|
||||||
{
|
|
||||||
if (tok->astOperand1() && !astHasAutoResult(tok->astOperand1()))
|
|
||||||
return false;
|
|
||||||
if (tok->astOperand2() && !astHasAutoResult(tok->astOperand2()))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (tok->isOp()) {
|
|
||||||
if (tok->tokType() == Token::eIncDecOp)
|
|
||||||
return false;
|
|
||||||
if ((tok->str() == "<<" || tok->str() == ">>") && tok->astOperand1()) {
|
|
||||||
const Token* tok2 = tok->astOperand1();
|
|
||||||
while (tok2 && tok2->isUnaryOp("*"))
|
|
||||||
tok2 = tok2->astOperand1();
|
|
||||||
return tok2 && tok2->variable() && !tok2->variable()->isClass() && !tok2->variable()->isStlType(); // Class or unknown type on LHS: Assume it is a stream
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tok->isLiteral())
|
|
||||||
return true;
|
|
||||||
|
|
||||||
if (tok->isName()) {
|
|
||||||
// TODO: check function calls, struct members, arrays, etc also
|
|
||||||
if (!tok->variable())
|
|
||||||
return false;
|
|
||||||
if (tok->variable()->isStlType())
|
|
||||||
return true;
|
|
||||||
if (tok->variable()->isClass() || tok->variable()->isPointer() || tok->variable()->isReference()) // TODO: Properly handle pointers/references to classes in symbol database
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool isInScope(const Token * tok, const Scope * scope)
|
static bool isInScope(const Token * tok, const Scope * scope)
|
||||||
{
|
{
|
||||||
if (!tok)
|
if (!tok)
|
||||||
|
|
|
@ -1567,34 +1567,6 @@ static bool isConditionKnown(const Token* tok, bool then)
|
||||||
return (parent && parent->str() == "(");
|
return (parent && parent->str() == "(");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void valueFlowAST(Token *tok, nonneg int varid, const ValueFlow::Value &value, const Settings *settings)
|
|
||||||
{
|
|
||||||
if (!tok)
|
|
||||||
return;
|
|
||||||
if (tok->varId() == varid)
|
|
||||||
setTokenValue(tok, value, settings);
|
|
||||||
valueFlowAST(tok->astOperand1(), varid, value, settings);
|
|
||||||
if (tok->str() == "&&" && tok->astOperand1() && tok->astOperand1()->getValue(0)) {
|
|
||||||
ProgramMemory pm;
|
|
||||||
pm.setValue(varid,value);
|
|
||||||
if (conditionIsFalse(tok->astOperand1(), pm))
|
|
||||||
return;
|
|
||||||
} else if (tok->str() == "||" && tok->astOperand1()) {
|
|
||||||
const std::list<ValueFlow::Value> &values = tok->astOperand1()->values();
|
|
||||||
const bool nonzero = std::any_of(values.cbegin(), values.cend(),
|
|
||||||
[=](const ValueFlow::Value &v) {
|
|
||||||
return v.intvalue != 0;
|
|
||||||
});
|
|
||||||
if (!nonzero)
|
|
||||||
return;
|
|
||||||
ProgramMemory pm;
|
|
||||||
pm.setValue(varid,value);
|
|
||||||
if (conditionIsTrue(tok->astOperand1(), pm))
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
valueFlowAST(tok->astOperand2(), varid, value, settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const std::string& invertAssign(const std::string& assign)
|
static const std::string& invertAssign(const std::string& assign)
|
||||||
{
|
{
|
||||||
static std::unordered_map<std::string, std::string> lookup = {
|
static std::unordered_map<std::string, std::string> lookup = {
|
||||||
|
|
Loading…
Reference in New Issue