Skip to content

Commit 7dd7a0f

Browse files
authored
valueflow.cpp: removed unused ValueFlowAnalyzer::isCPP() and ValueFlowAnalyzer::tokenlist (#6557)
1 parent 5b86f87 commit 7dd7a0f

1 file changed

Lines changed: 38 additions & 43 deletions

File tree

lib/valueflow.cpp

Lines changed: 38 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,8 +1177,8 @@ static void valueFlowGlobalStaticVar(TokenList &tokenList, const Settings &setti
11771177
}
11781178
}
11791179

1180-
static ValuePtr<Analyzer> makeAnalyzer(const Token* exprTok, ValueFlow::Value value, const TokenList& tokenlist, const Settings& settings);
1181-
static ValuePtr<Analyzer> makeReverseAnalyzer(const Token* exprTok, ValueFlow::Value value, const TokenList& tokenlist, const Settings& settings);
1180+
static ValuePtr<Analyzer> makeAnalyzer(const Token* exprTok, ValueFlow::Value value, const Settings& settings);
1181+
static ValuePtr<Analyzer> makeReverseAnalyzer(const Token* exprTok, ValueFlow::Value value, const Settings& settings);
11821182

11831183
static Analyzer::Result valueFlowForward(Token* startToken,
11841184
const Token* endToken,
@@ -1193,7 +1193,7 @@ static Analyzer::Result valueFlowForward(Token* startToken,
11931193
setSourceLocation(value, loc, startToken);
11941194
return valueFlowGenericForward(startToken,
11951195
endToken,
1196-
makeAnalyzer(exprTok, std::move(value), tokenlist, settings),
1196+
makeAnalyzer(exprTok, std::move(value), settings),
11971197
tokenlist,
11981198
errorLogger,
11991199
settings);
@@ -1246,7 +1246,7 @@ static Analyzer::Result valueFlowForwardRecursive(Token* top,
12461246
if (settings.debugnormal)
12471247
setSourceLocation(v, loc, top);
12481248
result.update(
1249-
valueFlowGenericForward(top, makeAnalyzer(exprTok, std::move(v), tokenlist, settings), tokenlist, errorLogger, settings));
1249+
valueFlowGenericForward(top, makeAnalyzer(exprTok, std::move(v), settings), tokenlist, errorLogger, settings));
12501250
}
12511251
return result;
12521252
}
@@ -1263,7 +1263,7 @@ static void valueFlowReverse(Token* tok,
12631263
for (ValueFlow::Value& v : values) {
12641264
if (settings.debugnormal)
12651265
setSourceLocation(v, loc, tok);
1266-
valueFlowGenericReverse(tok, endToken, makeReverseAnalyzer(varToken, std::move(v), tokenlist, settings), tokenlist, errorLogger, settings);
1266+
valueFlowGenericReverse(tok, endToken, makeReverseAnalyzer(varToken, std::move(v), settings), tokenlist, errorLogger, settings);
12671267
}
12681268
}
12691269

@@ -1527,11 +1527,10 @@ static bool bifurcate(const Token* tok, const std::set<nonneg int>& varids, cons
15271527
}
15281528

15291529
struct ValueFlowAnalyzer : Analyzer {
1530-
const TokenList& tokenlist;
15311530
const Settings& settings;
15321531
ProgramMemoryState pms;
15331532

1534-
explicit ValueFlowAnalyzer(const TokenList& t, const Settings& s) : tokenlist(t), settings(s), pms(&settings) {}
1533+
explicit ValueFlowAnalyzer(const Settings& s) : settings(s), pms(&settings) {}
15351534

15361535
virtual const ValueFlow::Value* getValue(const Token* tok) const = 0;
15371536
virtual ValueFlow::Value* getValue(const Token* tok) = 0;
@@ -1569,10 +1568,6 @@ struct ValueFlowAnalyzer : Analyzer {
15691568
return false;
15701569
}
15711570

1572-
bool isCPP() const {
1573-
return tokenlist.isCPP();
1574-
}
1575-
15761571
const Settings& getSettings() const {
15771572
return settings;
15781573
}
@@ -2184,7 +2179,7 @@ struct SingleValueFlowAnalyzer : ValueFlowAnalyzer {
21842179
std::unordered_map<nonneg int, const Variable*> aliases;
21852180
ValueFlow::Value value;
21862181

2187-
SingleValueFlowAnalyzer(ValueFlow::Value v, const TokenList& t, const Settings& s) : ValueFlowAnalyzer(t, s), value(std::move(v)) {}
2182+
SingleValueFlowAnalyzer(ValueFlow::Value v, const Settings& s) : ValueFlowAnalyzer(s), value(std::move(v)) {}
21882183

21892184
const std::unordered_map<nonneg int, const Variable*>& getVars() const {
21902185
return varids;
@@ -2305,7 +2300,7 @@ struct SingleValueFlowAnalyzer : ValueFlowAnalyzer {
23052300
ValuePtr<Analyzer> reanalyze(Token* tok, const std::string& msg) const override {
23062301
ValueFlow::Value newValue = value;
23072302
newValue.errorPath.emplace_back(tok, msg);
2308-
return makeAnalyzer(tok, std::move(newValue), tokenlist, settings);
2303+
return makeAnalyzer(tok, std::move(newValue), settings);
23092304
}
23102305
};
23112306

@@ -2316,8 +2311,8 @@ struct ExpressionAnalyzer : SingleValueFlowAnalyzer {
23162311
bool dependOnThis{};
23172312
bool uniqueExprId{};
23182313

2319-
ExpressionAnalyzer(const Token* e, ValueFlow::Value val, const TokenList& t, const Settings& s)
2320-
: SingleValueFlowAnalyzer(std::move(val), t, s),
2314+
ExpressionAnalyzer(const Token* e, ValueFlow::Value val, const Settings& s)
2315+
: SingleValueFlowAnalyzer(std::move(val), s),
23212316
expr(e)
23222317
{
23232318

@@ -2420,8 +2415,8 @@ struct ExpressionAnalyzer : SingleValueFlowAnalyzer {
24202415
};
24212416

24222417
struct SameExpressionAnalyzer : ExpressionAnalyzer {
2423-
SameExpressionAnalyzer(const Token* e, ValueFlow::Value val, const TokenList& t, const Settings& s)
2424-
: ExpressionAnalyzer(e, std::move(val), t, s)
2418+
SameExpressionAnalyzer(const Token* e, ValueFlow::Value val, const Settings& s)
2419+
: ExpressionAnalyzer(e, std::move(val), s)
24252420
{}
24262421

24272422
bool skipUniqueExprIds() const override {
@@ -2437,8 +2432,8 @@ struct SameExpressionAnalyzer : ExpressionAnalyzer {
24372432
struct OppositeExpressionAnalyzer : ExpressionAnalyzer {
24382433
bool isNot{};
24392434

2440-
OppositeExpressionAnalyzer(bool pIsNot, const Token* e, ValueFlow::Value val, const TokenList& t, const Settings& s)
2441-
: ExpressionAnalyzer(e, std::move(val), t, s), isNot(pIsNot)
2435+
OppositeExpressionAnalyzer(bool pIsNot, const Token* e, ValueFlow::Value val, const Settings& s)
2436+
: ExpressionAnalyzer(e, std::move(val), s), isNot(pIsNot)
24422437
{}
24432438

24442439
bool skipUniqueExprIds() const override {
@@ -2455,8 +2450,8 @@ struct SubExpressionAnalyzer : ExpressionAnalyzer {
24552450
// A shared_ptr is used so partial reads can be captured even after forking
24562451
std::shared_ptr<PartialReadContainer> partialReads;
24572452

2458-
SubExpressionAnalyzer(const Token* e, ValueFlow::Value val, const TokenList& t, const Settings& s)
2459-
: ExpressionAnalyzer(e, std::move(val), t, s), partialReads(std::make_shared<PartialReadContainer>())
2453+
SubExpressionAnalyzer(const Token* e, ValueFlow::Value val, const Settings& s)
2454+
: ExpressionAnalyzer(e, std::move(val), s), partialReads(std::make_shared<PartialReadContainer>())
24602455
{}
24612456

24622457
virtual bool submatch(const Token* tok, bool exact = true) const = 0;
@@ -2490,8 +2485,8 @@ struct SubExpressionAnalyzer : ExpressionAnalyzer {
24902485
struct MemberExpressionAnalyzer : SubExpressionAnalyzer {
24912486
std::string varname;
24922487

2493-
MemberExpressionAnalyzer(std::string varname, const Token* e, ValueFlow::Value val, const TokenList& t, const Settings& s)
2494-
: SubExpressionAnalyzer(e, std::move(val), t, s), varname(std::move(varname))
2488+
MemberExpressionAnalyzer(std::string varname, const Token* e, ValueFlow::Value val, const Settings& s)
2489+
: SubExpressionAnalyzer(e, std::move(val), s), varname(std::move(varname))
24952490
{}
24962491

24972492
bool submatch(const Token* tok, bool exact) const override
@@ -4486,11 +4481,11 @@ static void valueFlowConditionExpressions(const TokenList &tokenlist, const Symb
44864481
for (const Token* condTok2 : getConditions(condTok, "&&")) {
44874482
if (is1) {
44884483
const bool isBool = astIsBool(condTok2) || Token::Match(condTok2, "%comp%|%oror%|&&");
4489-
SameExpressionAnalyzer a1(condTok2, makeConditionValue(1, condTok2, /*assume*/ true, !isBool, settings), tokenlist, settings); // don't set '1' for non-boolean expressions
4484+
SameExpressionAnalyzer a1(condTok2, makeConditionValue(1, condTok2, /*assume*/ true, !isBool, settings), settings); // don't set '1' for non-boolean expressions
44904485
valueFlowGenericForward(startTok, startTok->link(), a1, tokenlist, errorLogger, settings);
44914486
}
44924487

4493-
OppositeExpressionAnalyzer a2(true, condTok2, makeConditionValue(0, condTok2, true, false, settings), tokenlist, settings);
4488+
OppositeExpressionAnalyzer a2(true, condTok2, makeConditionValue(0, condTok2, true, false, settings), settings);
44944489
valueFlowGenericForward(startTok, startTok->link(), a2, tokenlist, errorLogger, settings);
44954490
}
44964491
}
@@ -4501,11 +4496,11 @@ static void valueFlowConditionExpressions(const TokenList &tokenlist, const Symb
45014496
if (Token::simpleMatch(startTok->link(), "} else {")) {
45024497
startTok = startTok->link()->tokAt(2);
45034498
for (const Token* condTok2:conds) {
4504-
SameExpressionAnalyzer a1(condTok2, makeConditionValue(0, condTok2, false, false, settings), tokenlist, settings);
4499+
SameExpressionAnalyzer a1(condTok2, makeConditionValue(0, condTok2, false, false, settings), settings);
45054500
valueFlowGenericForward(startTok, startTok->link(), a1, tokenlist, errorLogger, settings);
45064501

45074502
if (is1) {
4508-
OppositeExpressionAnalyzer a2(true, condTok2, makeConditionValue(1, condTok2, false, false, settings), tokenlist, settings);
4503+
OppositeExpressionAnalyzer a2(true, condTok2, makeConditionValue(1, condTok2, false, false, settings), settings);
45094504
valueFlowGenericForward(startTok, startTok->link(), a2, tokenlist, errorLogger, settings);
45104505
}
45114506
}
@@ -4521,11 +4516,11 @@ static void valueFlowConditionExpressions(const TokenList &tokenlist, const Symb
45214516
continue;
45224517
}
45234518
for (const Token* condTok2:conds) {
4524-
SameExpressionAnalyzer a1(condTok2, makeConditionValue(0, condTok2, false, false, settings), tokenlist, settings);
4519+
SameExpressionAnalyzer a1(condTok2, makeConditionValue(0, condTok2, false, false, settings), settings);
45254520
valueFlowGenericForward(startTok->link()->next(), scope2->bodyEnd, a1, tokenlist, errorLogger, settings);
45264521

45274522
if (is1) {
4528-
OppositeExpressionAnalyzer a2(true, condTok2, makeConditionValue(1, condTok2, false, false, settings), tokenlist, settings);
4523+
OppositeExpressionAnalyzer a2(true, condTok2, makeConditionValue(1, condTok2, false, false, settings), settings);
45294524
valueFlowGenericForward(startTok->link()->next(), scope2->bodyEnd, a2, tokenlist, errorLogger, settings);
45304525
}
45314526
}
@@ -6471,8 +6466,8 @@ struct MultiValueFlowAnalyzer : ValueFlowAnalyzer {
64716466
std::unordered_map<nonneg int, ValueFlow::Value> values;
64726467
std::unordered_map<nonneg int, const Variable*> vars;
64736468

6474-
MultiValueFlowAnalyzer(const std::unordered_map<const Variable*, ValueFlow::Value>& args, const TokenList& t, const Settings& set)
6475-
: ValueFlowAnalyzer(t, set) {
6469+
MultiValueFlowAnalyzer(const std::unordered_map<const Variable*, ValueFlow::Value>& args, const Settings& set)
6470+
: ValueFlowAnalyzer(set) {
64766471
for (const auto& p:args) {
64776472
values[p.first->declarationId()] = p.second;
64786473
vars[p.first->declarationId()] = p.first;
@@ -6674,14 +6669,14 @@ static bool productParams(const Settings& settings, const std::unordered_map<Key
66746669
return !bail;
66756670
}
66766671

6677-
static void valueFlowInjectParameter(TokenList& tokenlist,
6672+
static void valueFlowInjectParameter(const TokenList& tokenlist,
66786673
ErrorLogger& errorLogger,
66796674
const Settings& settings,
66806675
const Scope* functionScope,
66816676
const std::unordered_map<const Variable*, std::list<ValueFlow::Value>>& vars)
66826677
{
66836678
const bool r = productParams(settings, vars, [&](const std::unordered_map<const Variable*, ValueFlow::Value>& arg) {
6684-
MultiValueFlowAnalyzer a(arg, tokenlist, settings);
6679+
MultiValueFlowAnalyzer a(arg, settings);
66856680
valueFlowGenericForward(const_cast<Token*>(functionScope->bodyStart), functionScope->bodyEnd, a, tokenlist, errorLogger, settings);
66866681
});
66876682
if (!r) {
@@ -6853,7 +6848,7 @@ static IteratorRange<Iterator> MakeIteratorRange(Iterator start, Iterator last)
68536848
return {start, last};
68546849
}
68556850

6856-
static void valueFlowSubFunction(TokenList& tokenlist, SymbolDatabase& symboldatabase, ErrorLogger& errorLogger, const Settings& settings)
6851+
static void valueFlowSubFunction(const TokenList& tokenlist, SymbolDatabase& symboldatabase, ErrorLogger& errorLogger, const Settings& settings)
68576852
{
68586853
int id = 0;
68596854
for (const Scope* scope : MakeIteratorRange(symboldatabase.functionScopes.crbegin(), symboldatabase.functionScopes.crend())) {
@@ -7215,7 +7210,7 @@ static void valueFlowUninit(TokenList& tokenlist, ErrorLogger& errorLogger, cons
72157210
partial = true;
72167211
continue;
72177212
}
7218-
MemberExpressionAnalyzer analyzer(memVar.nameToken()->str(), tok, uninitValue, tokenlist, settings);
7213+
MemberExpressionAnalyzer analyzer(memVar.nameToken()->str(), tok, uninitValue, settings);
72197214
valueFlowGenericForward(start, tok->scope()->bodyEnd, analyzer, tokenlist, errorLogger, settings);
72207215

72217216
for (auto&& p : *analyzer.partialReads) {
@@ -7317,8 +7312,8 @@ static bool isContainerSizeChangedByFunction(const Token* tok,
73177312
}
73187313

73197314
struct ContainerExpressionAnalyzer : ExpressionAnalyzer {
7320-
ContainerExpressionAnalyzer(const Token* expr, ValueFlow::Value val, const TokenList& t, const Settings& s)
7321-
: ExpressionAnalyzer(expr, std::move(val), t, s)
7315+
ContainerExpressionAnalyzer(const Token* expr, ValueFlow::Value val, const Settings& s)
7316+
: ExpressionAnalyzer(expr, std::move(val), s)
73227317
{}
73237318

73247319
bool match(const Token* tok) const override {
@@ -7502,19 +7497,19 @@ static const Token* solveExprValue(const Token* expr, ValueFlow::Value& value)
75027497
value);
75037498
}
75047499

7505-
static ValuePtr<Analyzer> makeAnalyzer(const Token* exprTok, ValueFlow::Value value, const TokenList& tokenlist, const Settings& settings)
7500+
static ValuePtr<Analyzer> makeAnalyzer(const Token* exprTok, ValueFlow::Value value, const Settings& settings)
75067501
{
75077502
if (value.isContainerSizeValue())
7508-
return ContainerExpressionAnalyzer(exprTok, std::move(value), tokenlist, settings);
7503+
return ContainerExpressionAnalyzer(exprTok, std::move(value), settings);
75097504
const Token* expr = solveExprValue(exprTok, value);
7510-
return ExpressionAnalyzer(expr, std::move(value), tokenlist, settings);
7505+
return ExpressionAnalyzer(expr, std::move(value), settings);
75117506
}
75127507

7513-
static ValuePtr<Analyzer> makeReverseAnalyzer(const Token* exprTok, ValueFlow::Value value, const TokenList& tokenlist, const Settings& settings)
7508+
static ValuePtr<Analyzer> makeReverseAnalyzer(const Token* exprTok, ValueFlow::Value value, const Settings& settings)
75147509
{
75157510
if (value.isContainerSizeValue())
7516-
return ContainerExpressionAnalyzer(exprTok, std::move(value), tokenlist, settings);
7517-
return ExpressionAnalyzer(exprTok, std::move(value), tokenlist, settings);
7511+
return ContainerExpressionAnalyzer(exprTok, std::move(value), settings);
7512+
return ExpressionAnalyzer(exprTok, std::move(value), settings);
75187513
}
75197514

75207515
bool ValueFlow::isContainerSizeChanged(const Token* tok, int indirect, const Settings& settings, int depth)

0 commit comments

Comments
 (0)