@@ -1183,7 +1183,7 @@ bool Library::isnullargbad(const Token *ftok, int argnr) const
1183
1183
const ArgumentChecks *arg = getarg (ftok, argnr);
1184
1184
if (!arg) {
1185
1185
// scan format string argument should not be null
1186
- const std::string funcname = getFunctionName ( ftok);
1186
+ const std::string& funcname = ftok-> funcname (* this );
1187
1187
const auto it = utils::as_const (mData ->mFunctions ).find (funcname);
1188
1188
if (it != mData ->mFunctions .cend () && it->second .formatstr && it->second .formatstr_scan )
1189
1189
return true ;
@@ -1196,7 +1196,7 @@ bool Library::isuninitargbad(const Token *ftok, int argnr, int indirect, bool *h
1196
1196
const ArgumentChecks *arg = getarg (ftok, argnr);
1197
1197
if (!arg) {
1198
1198
// non-scan format string argument should not be uninitialized
1199
- const std::string funcname = getFunctionName ( ftok);
1199
+ const std::string& funcname = ftok-> funcname (* this );
1200
1200
const auto it = utils::as_const (mData ->mFunctions ).find (funcname);
1201
1201
if (it != mData ->mFunctions .cend () && it->second .formatstr && !it->second .formatstr_scan )
1202
1202
return true ;
@@ -1214,7 +1214,7 @@ const Library::AllocFunc* Library::getAllocFuncInfo(const Token *tok) const
1214
1214
tok = tok->astOperand2 () ? tok->astOperand2 () : tok->astOperand1 ();
1215
1215
if (!tok)
1216
1216
return nullptr ;
1217
- const std::string funcname = getFunctionName ( tok);
1217
+ const std::string& funcname = tok-> funcname (* this );
1218
1218
return isNotLibraryFunction (tok) && mData ->mFunctions .find (funcname) != mData ->mFunctions .end () ? nullptr : getAllocDealloc (mData ->mAlloc , funcname);
1219
1219
}
1220
1220
@@ -1225,7 +1225,7 @@ const Library::AllocFunc* Library::getDeallocFuncInfo(const Token *tok) const
1225
1225
tok = tok->astOperand2 () ? tok->astOperand2 () : tok->astOperand1 ();
1226
1226
if (!tok)
1227
1227
return nullptr ;
1228
- const std::string funcname = getFunctionName ( tok);
1228
+ const std::string& funcname = tok-> funcname (* this );
1229
1229
return isNotLibraryFunction (tok) && mData ->mFunctions .find (funcname) != mData ->mFunctions .end () ? nullptr : getAllocDealloc (mData ->mDealloc , funcname);
1230
1230
}
1231
1231
@@ -1236,7 +1236,7 @@ const Library::AllocFunc* Library::getReallocFuncInfo(const Token *tok) const
1236
1236
tok = tok->astOperand2 () ? tok->astOperand2 () : tok->astOperand1 ();
1237
1237
if (!tok)
1238
1238
return nullptr ;
1239
- const std::string funcname = getFunctionName ( tok);
1239
+ const std::string& funcname = tok-> funcname (* this );
1240
1240
return isNotLibraryFunction (tok) && mData ->mFunctions .find (funcname) != mData ->mFunctions .end () ? nullptr : getAllocDealloc (mData ->mRealloc , funcname);
1241
1241
}
1242
1242
@@ -1443,7 +1443,7 @@ bool Library::isNotLibraryFunction(const Token *ftok, const Function **func) con
1443
1443
if (ftok->varId ())
1444
1444
return true ;
1445
1445
1446
- return !matchArguments (ftok, getFunctionName ( ftok), func);
1446
+ return !matchArguments (ftok, ftok-> funcname (* this ), func);
1447
1447
}
1448
1448
1449
1449
bool Library::matchArguments (const Token *ftok, const std::string &functionName, const Function **func) const
@@ -1483,7 +1483,7 @@ const Library::WarnInfo* Library::getWarnInfo(const Token* ftok) const
1483
1483
{
1484
1484
if (isNotLibraryFunction (ftok))
1485
1485
return nullptr ;
1486
- const auto i = utils::as_const (mData ->mFunctionwarn ).find (getFunctionName ( ftok));
1486
+ const auto i = utils::as_const (mData ->mFunctionwarn ).find (ftok-> funcname (* this ));
1487
1487
if (i == mData ->mFunctionwarn .cend ())
1488
1488
return nullptr ;
1489
1489
return &i->second ;
@@ -1539,15 +1539,15 @@ bool Library::formatstr_function(const Token* ftok) const
1539
1539
if (isNotLibraryFunction (ftok))
1540
1540
return false ;
1541
1541
1542
- const auto it = utils::as_const (mData ->mFunctions ).find (getFunctionName ( ftok));
1542
+ const auto it = utils::as_const (mData ->mFunctions ).find (ftok-> funcname (* this ));
1543
1543
if (it != mData ->mFunctions .cend ())
1544
1544
return it->second .formatstr ;
1545
1545
return false ;
1546
1546
}
1547
1547
1548
1548
int Library::formatstr_argno (const Token* ftok) const
1549
1549
{
1550
- const std::map<int , Library::ArgumentChecks>& argumentChecksFunc = mData ->mFunctions .at (getFunctionName ( ftok)).argumentChecks ;
1550
+ const std::map<int , Library::ArgumentChecks>& argumentChecksFunc = mData ->mFunctions .at (ftok-> funcname (* this )).argumentChecks ;
1551
1551
auto it = std::find_if (argumentChecksFunc.cbegin (), argumentChecksFunc.cend (), [](const std::pair<const int , Library::ArgumentChecks>& a) {
1552
1552
return a.second .formatstr ;
1553
1553
});
@@ -1556,19 +1556,19 @@ int Library::formatstr_argno(const Token* ftok) const
1556
1556
1557
1557
bool Library::formatstr_scan (const Token* ftok) const
1558
1558
{
1559
- return mData ->mFunctions .at (getFunctionName ( ftok)).formatstr_scan ;
1559
+ return mData ->mFunctions .at (ftok-> funcname (* this )).formatstr_scan ;
1560
1560
}
1561
1561
1562
1562
bool Library::formatstr_secure (const Token* ftok) const
1563
1563
{
1564
- return mData ->mFunctions .at (getFunctionName ( ftok)).formatstr_secure ;
1564
+ return mData ->mFunctions .at (ftok-> funcname (* this )).formatstr_secure ;
1565
1565
}
1566
1566
1567
1567
const Library::NonOverlappingData* Library::getNonOverlappingData (const Token *ftok) const
1568
1568
{
1569
1569
if (isNotLibraryFunction (ftok))
1570
1570
return nullptr ;
1571
- const auto it = utils::as_const (mData ->mNonOverlappingData ).find (getFunctionName ( ftok));
1571
+ const auto it = utils::as_const (mData ->mNonOverlappingData ).find (ftok-> funcname (* this ));
1572
1572
return (it != mData ->mNonOverlappingData .cend ()) ? &it->second : nullptr ;
1573
1573
}
1574
1574
@@ -1586,7 +1586,7 @@ Library::UseRetValType Library::getUseRetValType(const Token *ftok) const
1586
1586
}
1587
1587
return Library::UseRetValType::NONE;
1588
1588
}
1589
- const auto it = utils::as_const (mData ->mFunctions ).find (getFunctionName ( ftok));
1589
+ const auto it = utils::as_const (mData ->mFunctions ).find (ftok-> funcname (* this ));
1590
1590
if (it != mData ->mFunctions .cend ())
1591
1591
return it->second .useretval ;
1592
1592
return Library::UseRetValType::NONE;
@@ -1596,7 +1596,7 @@ const std::string& Library::returnValue(const Token *ftok) const
1596
1596
{
1597
1597
if (isNotLibraryFunction (ftok))
1598
1598
return mEmptyString ;
1599
- const auto it = utils::as_const (mData ->mReturnValue ).find (getFunctionName ( ftok));
1599
+ const auto it = utils::as_const (mData ->mReturnValue ).find (ftok-> funcname (* this ));
1600
1600
return it != mData ->mReturnValue .cend () ? it->second : mEmptyString ;
1601
1601
}
1602
1602
@@ -1614,31 +1614,31 @@ const std::string& Library::returnValueType(const Token *ftok) const
1614
1614
}
1615
1615
return mEmptyString ;
1616
1616
}
1617
- const auto it = utils::as_const (mData ->mReturnValueType ).find (getFunctionName ( ftok));
1617
+ const auto it = utils::as_const (mData ->mReturnValueType ).find (ftok-> funcname (* this ));
1618
1618
return it != mData ->mReturnValueType .cend () ? it->second : mEmptyString ;
1619
1619
}
1620
1620
1621
1621
int Library::returnValueContainer (const Token *ftok) const
1622
1622
{
1623
1623
if (isNotLibraryFunction (ftok))
1624
1624
return -1 ;
1625
- const auto it = utils::as_const (mData ->mReturnValueContainer ).find (getFunctionName ( ftok));
1625
+ const auto it = utils::as_const (mData ->mReturnValueContainer ).find (ftok-> funcname (* this ));
1626
1626
return it != mData ->mReturnValueContainer .cend () ? it->second : -1 ;
1627
1627
}
1628
1628
1629
1629
std::vector<MathLib::bigint> Library::unknownReturnValues (const Token *ftok) const
1630
1630
{
1631
1631
if (isNotLibraryFunction (ftok))
1632
1632
return std::vector<MathLib::bigint>();
1633
- const auto it = utils::as_const (mData ->mUnknownReturnValues ).find (getFunctionName ( ftok));
1633
+ const auto it = utils::as_const (mData ->mUnknownReturnValues ).find (ftok-> funcname (* this ));
1634
1634
return (it == mData ->mUnknownReturnValues .cend ()) ? std::vector<MathLib::bigint>() : it->second ;
1635
1635
}
1636
1636
1637
1637
const Library::Function *Library::getFunction (const Token *ftok) const
1638
1638
{
1639
1639
if (isNotLibraryFunction (ftok))
1640
1640
return nullptr ;
1641
- const auto it1 = utils::as_const (mData ->mFunctions ).find (getFunctionName ( ftok));
1641
+ const auto it1 = utils::as_const (mData ->mFunctions ).find (ftok-> funcname (* this ));
1642
1642
if (it1 == mData ->mFunctions .cend ())
1643
1643
return nullptr ;
1644
1644
return &it1->second ;
@@ -1649,7 +1649,7 @@ bool Library::hasminsize(const Token *ftok) const
1649
1649
{
1650
1650
if (isNotLibraryFunction (ftok))
1651
1651
return false ;
1652
- const auto it = utils::as_const (mData ->mFunctions ).find (getFunctionName ( ftok));
1652
+ const auto it = utils::as_const (mData ->mFunctions ).find (ftok-> funcname (* this ));
1653
1653
if (it == mData ->mFunctions .cend ())
1654
1654
return false ;
1655
1655
return std::any_of (it->second .argumentChecks .cbegin (), it->second .argumentChecks .cend (), [](const std::pair<const int , Library::ArgumentChecks>& a) {
@@ -1721,7 +1721,7 @@ bool Library::isFunctionConst(const Token *ftok) const
1721
1721
}
1722
1722
return false ;
1723
1723
}
1724
- const auto it = utils::as_const (mData ->mFunctions ).find (getFunctionName ( ftok));
1724
+ const auto it = utils::as_const (mData ->mFunctions ).find (ftok-> funcname (* this ));
1725
1725
return (it != mData ->mFunctions .cend () && it->second .isconst );
1726
1726
}
1727
1727
@@ -1740,7 +1740,7 @@ bool Library::isnoreturn(const Token *ftok) const
1740
1740
}
1741
1741
return false ;
1742
1742
}
1743
- const auto it = utils::as_const (mData ->mNoReturn ).find (getFunctionName ( ftok));
1743
+ const auto it = utils::as_const (mData ->mNoReturn ).find (ftok-> funcname (* this ));
1744
1744
if (it == mData ->mNoReturn .end ())
1745
1745
return false ;
1746
1746
if (it->second == LibraryData::FalseTrueMaybe::Maybe)
@@ -1753,8 +1753,8 @@ bool Library::isnotnoreturn(const Token *ftok) const
1753
1753
if (ftok->function () && ftok->function ()->isAttributeNoreturn ())
1754
1754
return false ;
1755
1755
if (isNotLibraryFunction (ftok))
1756
- return hasAnyTypeCheck (getFunctionName ( ftok));
1757
- const auto it = utils::as_const (mData ->mNoReturn ).find (getFunctionName ( ftok));
1756
+ return hasAnyTypeCheck (ftok-> funcname (* this ));
1757
+ const auto it = utils::as_const (mData ->mNoReturn ).find (ftok-> funcname (* this ));
1758
1758
if (it == mData ->mNoReturn .end ())
1759
1759
return false ;
1760
1760
if (it->second == LibraryData::FalseTrueMaybe::Maybe)
0 commit comments