MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / getInvalidValue

Method getInvalidValue

lib/token.cpp:1956–1979  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1954}
1955
1956const ValueFlow::Value * Token::getInvalidValue(const Token *ftok, nonneg int argnr, const Settings &settings) const
1957{
1958 if (!mImpl->mValues)
1959 return nullptr;
1960 const ValueFlow::Value *ret = nullptr;
1961 for (auto it = mImpl->mValues->begin(); it != mImpl->mValues->end(); ++it) {
1962 if (it->isImpossible())
1963 continue;
1964 if ((it->isIntValue() && !settings.library.isIntArgValid(ftok, argnr, it->intvalue, settings)) ||
1965 (it->isFloatValue() && !settings.library.isFloatArgValid(ftok, argnr, it->floatValue, settings))) {
1966 if (!ret || ret->isInconclusive() || (ret->condition && !it->isInconclusive()))
1967 ret = &(*it);
1968 if (!ret->isInconclusive() && !ret->condition)
1969 break;
1970 }
1971 }
1972 if (ret) {
1973 if (ret->isInconclusive() && !settings.certainty.isEnabled(Certainty::inconclusive))
1974 return nullptr;
1975 if (ret->condition && !settings.severity.isEnabled(Severity::warning))
1976 return nullptr;
1977 }
1978 return ret;
1979}
1980
1981const Token *Token::getValueTokenMinStrSize(const Settings &settings, MathLib::bigint* path) const
1982{

Callers 1

invalidFunctionUsageMethod · 0.80

Calls 7

isImpossibleMethod · 0.80
isIntArgValidMethod · 0.80
isFloatArgValidMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
isInconclusiveMethod · 0.45
isEnabledMethod · 0.45

Tested by

no test coverage detected