2222#include " errortypes.h"
2323#include " mathlib.h"
2424#include " path.h"
25+ #include " settings.h"
2526#include " symboldatabase.h"
2627#include " token.h"
2728#include " tokenlist.h"
@@ -178,6 +179,7 @@ static std::vector<std::string> getnames(const char *names)
178179static void gettokenlistfromvalid (const std::string& valid, bool cpp, TokenList& tokenList)
179180{
180181 std::istringstream istr (valid + ' ,' );
182+ // TODO: this will override the enforced language
181183 tokenList.createTokens (istr, cpp ? Standards::Language::CPP : Standards::Language::C); // TODO: check result?
182184 for (Token *tok = tokenList.front (); tok; tok = tok->next ()) {
183185 if (Token::Match (tok," - %num%" )) {
@@ -1054,14 +1056,14 @@ Library::Error Library::loadFunction(const tinyxml2::XMLElement * const node, co
10541056 return Error (ErrorCode::OK);
10551057}
10561058
1057- bool Library::isIntArgValid (const Token *ftok, int argnr, const MathLib::bigint argvalue) const
1059+ bool Library::isIntArgValid (const Token *ftok, int argnr, const MathLib::bigint argvalue, const Settings& settings ) const
10581060{
10591061 const ArgumentChecks *ac = getarg (ftok, argnr);
10601062 if (!ac || ac->valid .empty ())
10611063 return true ;
10621064 if (ac->valid .find (' .' ) != std::string::npos)
1063- return isFloatArgValid (ftok, argnr, static_cast <double >(argvalue));
1064- TokenList tokenList (nullptr );
1065+ return isFloatArgValid (ftok, argnr, static_cast <double >(argvalue), settings );
1066+ TokenList tokenList (settings );
10651067 gettokenlistfromvalid (ac->valid , ftok->isCpp (), tokenList);
10661068 for (const Token *tok = tokenList.front (); tok; tok = tok->next ()) {
10671069 if (tok->isNumber () && argvalue == MathLib::toBigNumber (tok))
@@ -1076,12 +1078,12 @@ bool Library::isIntArgValid(const Token *ftok, int argnr, const MathLib::bigint
10761078 return false ;
10771079}
10781080
1079- bool Library::isFloatArgValid (const Token *ftok, int argnr, double argvalue) const
1081+ bool Library::isFloatArgValid (const Token *ftok, int argnr, double argvalue, const Settings& settings ) const
10801082{
10811083 const ArgumentChecks *ac = getarg (ftok, argnr);
10821084 if (!ac || ac->valid .empty ())
10831085 return true ;
1084- TokenList tokenList (nullptr );
1086+ TokenList tokenList (settings );
10851087 gettokenlistfromvalid (ac->valid , ftok->isCpp (), tokenList);
10861088 for (const Token *tok = tokenList.front (); tok; tok = tok->next ()) {
10871089 if (Token::Match (tok, " %num% : %num%" ) && argvalue >= MathLib::toDoubleNumber (tok) && argvalue <= MathLib::toDoubleNumber (tok->tokAt (2 )))
0 commit comments