56 std::string
toString()
const override;
61 Location(std::string fileName,
nonneg int lineNumber,
nonneg int column) : fileName(std::move(fileName)), lineNumber(lineNumber), column(column) {}
69 UnsafeUsage(std::string myId,
nonneg int myArgNr, std::string myArgumentName,
Location location,
MathLib::bigint value) : myId(std::move(myId)), myArgNr(myArgNr), myArgumentName(std::move(myArgumentName)), location(std::move(location)), value(value) {}
81 CallBase(std::string callId,
int callArgNr, std::string callFunctionName,
Location loc)
82 : callId(std::move(callId)), callArgNr(callArgNr), callFunctionName(std::move(callFunctionName)), location(std::move(loc))
92 std::string toBaseXmlString()
const;
93 bool loadBaseFromXml(
const tinyxml2::XMLElement *xmlElement);
104 std::string toXmlString()
const;
105 bool loadFromXml(
const tinyxml2::XMLElement *xmlElement);
113 :
CallBase(callId, callArgnr, callFunctionName, location),
114 myId(std::move(myId)),
119 std::string toXmlString()
const;
120 bool loadFromXml(
const tinyxml2::XMLElement *xmlElement);
129 void loadFromXml(
const tinyxml2::XMLElement *xmlElement);
130 std::map<std::string, std::list<const CallBase *>> getCallsMap()
const;
132 static std::list<ErrorMessage::FileLocation> getErrorPath(
InvalidValueType invalidValue,
134 const std::map<std::string, std::list<const CallBase *>> &callsMap,
static bool isUnsafeUsage(const Settings &settings, const Token *vartok, MathLib::bigint *value)
CallBase(std::string callId, int callArgNr, std::string callFunctionName, Location loc)
CallBase(const CallBase &)=default
std::string callFunctionName
virtual ~CallBase()=default
std::string callArgumentExpression
ValueFlow::Value::ValueType callValueType
MathLib::bigint callArgValue
std::vector< ErrorMessage::FileLocation > callValuePath
NestedCall(std::string myId, nonneg int myArgNr, const std::string &callId, nonneg int callArgnr, const std::string &callFunctionName, const Location &location)
std::list< NestedCall > nestedCalls
std::list< FunctionCall > functionCalls
Base class used for whole-program analysis.
This is just a container for general settings so that we don't need to pass individual values to func...
The token list that the TokenList generates is a linked-list of this class.
The main purpose is to tokenize the source code.
Whole program analysis (ctu=Cross Translation Unit)
CPPCHECKLIB std::list< FileInfo::UnsafeUsage > getUnsafeUsage(const Tokenizer &tokenizer, const Settings &settings, bool(*isUnsafeUsage)(const Settings &settings, const Token *argtok, MathLib::bigint *value))
CPPCHECKLIB std::string toString(const std::list< FileInfo::UnsafeUsage > &unsafeUsage)
CPPCHECKLIB std::list< FileInfo::UnsafeUsage > loadUnsafeUsageListFromXml(const tinyxml2::XMLElement *xmlElement)
CPPCHECKLIB std::string getFunctionId(const Tokenizer &tokenizer, const Function *function)
CPPCHECKLIB FileInfo * getFileInfo(const Tokenizer &tokenizer)
Parse current TU and extract file info.
Location(std::string fileName, nonneg int lineNumber, nonneg int column)
std::string myArgumentName
UnsafeUsage(std::string myId, nonneg int myArgNr, std::string myArgumentName, Location location, MathLib::bigint value)