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

Function evaluate

externals/simplecpp/simplecpp.cpp:3005–3015  ·  view source on GitHub ↗

* @throws std::runtime_error thrown on invalid literals, missing sizeof arguments or invalid expressions, * missing __has_include() arguments or expressions, undefined function-like macros, invalid number literals * @throws std::overflow_error thrown on overflow or division by zero */

Source from the content-addressed store, hash-verified

3003 * @throws std::overflow_error thrown on overflow or division by zero
3004 */
3005static long long evaluate(simplecpp::TokenList &expr, const simplecpp::DUI &dui, const std::map<std::string, std::size_t> &sizeOfType)
3006{
3007 simplifyComments(expr);
3008 simplifySizeof(expr, sizeOfType);
3009 simplifyHasInclude(expr, dui);
3010 simplifyName(expr);
3011 simplifyNumbers(expr);
3012 expr.constFold();
3013 // TODO: handle invalid expressions
3014 return expr.cfront() && expr.cfront() == expr.cback() && expr.cfront()->number ? stringToLL(expr.cfront()->str()) : 0LL;
3015}
3016
3017static const simplecpp::Token *gotoNextLine(const simplecpp::Token *tok)
3018{

Callers 1

preprocessMethod · 0.70

Calls 8

simplifyCommentsFunction · 0.85
simplifySizeofFunction · 0.85
simplifyHasIncludeFunction · 0.85
simplifyNameFunction · 0.85
simplifyNumbersFunction · 0.85
stringToLLFunction · 0.85
constFoldMethod · 0.80
strMethod · 0.45

Tested by

no test coverage detected