@@ -1129,8 +1129,9 @@ static bool isVoidCast(const Token *tok)
11291129 return Token::simpleMatch (tok, " (" ) && tok->isCast () && tok->valueType () && tok->valueType ()->type == ValueType::Type::VOID && tok->valueType ()->pointer == 0 ;
11301130}
11311131
1132- const Token* CheckUninitVar::isVariableUsage (bool cpp, const Token *vartok, const Library& library, bool pointer, Alloc alloc, int indirect)
1132+ const Token* CheckUninitVar::isVariableUsage (const Token *vartok, const Library& library, bool pointer, Alloc alloc, int indirect)
11331133{
1134+ const bool cpp = vartok->isCpp ();
11341135 const Token *valueExpr = vartok; // non-dereferenced , no address of value as variable
11351136 while (Token::Match (valueExpr->astParent (), " .|::" ) && astIsRhs (valueExpr))
11361137 valueExpr = valueExpr->astParent ();
@@ -1334,7 +1335,7 @@ const Token* CheckUninitVar::isVariableUsage(bool cpp, const Token *vartok, cons
13341335
13351336const Token* CheckUninitVar::isVariableUsage (const Token *vartok, bool pointer, Alloc alloc, int indirect) const
13361337{
1337- return CheckUninitVar:: isVariableUsage (mTokenizer -> isCPP (), vartok, mSettings ->library , pointer, alloc, indirect);
1338+ return isVariableUsage (vartok, mSettings ->library , pointer, alloc, indirect);
13381339}
13391340
13401341/* **
@@ -1681,18 +1682,11 @@ void CheckUninitVar::valueFlowUninit()
16811682 }
16821683}
16831684
1684- Check::FileInfo *CheckUninitVar::getFileInfo (const Tokenizer *tokenizer, const Settings *settings) const
1685- {
1686- const CheckUninitVar checker (tokenizer, settings, nullptr );
1687- return checker.getFileInfo ();
1688- }
1689-
16901685// NOLINTNEXTLINE(readability-non-const-parameter) - used as callback so we need to preserve the signature
1691- static bool isVariableUsage (const Check *check , const Token *vartok, MathLib::bigint *value)
1686+ static bool isVariableUsage (const Settings *settings , const Token *vartok, MathLib::bigint *value)
16921687{
16931688 (void )value;
1694- const CheckUninitVar *c = dynamic_cast <const CheckUninitVar *>(check);
1695- return c && c->isVariableUsage (vartok, true , CheckUninitVar::Alloc::ARRAY);
1689+ return CheckUninitVar::isVariableUsage (vartok, settings->library , true , CheckUninitVar::Alloc::ARRAY);
16961690}
16971691
16981692namespace {
@@ -1710,9 +1704,9 @@ namespace {
17101704 };
17111705}
17121706
1713- Check::FileInfo *CheckUninitVar::getFileInfo () const
1707+ Check::FileInfo *CheckUninitVar::getFileInfo (const Tokenizer *tokenizer, const Settings *settings ) const
17141708{
1715- const std::list<CTU::FileInfo::UnsafeUsage> &unsafeUsage = CTU::getUnsafeUsage (mTokenizer , mSettings , this , ::isVariableUsage);
1709+ const std::list<CTU::FileInfo::UnsafeUsage> &unsafeUsage = CTU::getUnsafeUsage (tokenizer, settings , ::isVariableUsage);
17161710 if (unsafeUsage.empty ())
17171711 return nullptr ;
17181712
0 commit comments