Cppcheck
Classes | Namespaces | Functions
valueflow.h File Reference
#include "config.h"
#include "mathlib.h"
#include "vfvalue.h"
#include <cstdlib>
#include <functional>
#include <list>
#include <string>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  ValueFlow::LifetimeToken
 

Namespaces

 ValueFlow
 

Functions

const Value * ValueFlow::valueFlowConstantFoldAST (Token *expr, const Settings &settings)
 Constant folding of expression. This can be used before the full ValueFlow has been executed (ValueFlow::setValues). More...
 
void ValueFlow::setValues (TokenList &tokenlist, SymbolDatabase &symboldatabase, ErrorLogger &errorLogger, const Settings &settings, TimerResultsIntf *timerResults)
 Perform valueflow analysis. More...
 
std::string ValueFlow::eitherTheConditionIsRedundant (const Token *condition)
 
size_t ValueFlow::getSizeOf (const ValueType &vt, const Settings &settings, int maxRecursion=0)
 
const Value * ValueFlow::findValue (const std::list< Value > &values, const Settings &settings, const std::function< bool(const Value &)> &pred)
 
std::vector< Value > ValueFlow::isOutOfBounds (const Value &size, const Token *indexTok, bool possible=true)
 
Value ValueFlow::asImpossible (Value v)
 
bool ValueFlow::isContainerSizeChanged (const Token *tok, int indirect, const Settings &settings, int depth=20)
 
const TokenValueFlow::parseCompareInt (const Token *tok, Value &true_value, Value &false_value, const std::function< std::vector< MathLib::bigint >(const Token *)> &evaluate)
 
const TokenValueFlow::parseCompareInt (const Token *tok, Value &true_value, Value &false_value)
 
CPPCHECKLIB ValuePtr< InferModelValueFlow::makeIntegralInferModel ()
 
const TokenValueFlow::solveExprValue (const Token *expr, const std::function< std::vector< MathLib::bigint >(const Token *)> &eval, Value &value)
 
std::vector< LifetimeToken > ValueFlow::getLifetimeTokens (const Token *tok, const Settings &settings, bool escape=false, Value::ErrorPath errorPath=Value::ErrorPath{})
 
bool ValueFlow::hasLifetimeToken (const Token *tok, const Token *lifetime, const Settings &settings)
 
const VariableValueFlow::getLifetimeVariable (const Token *tok, Value::ErrorPath &errorPath, const Settings &settings, bool *addressOf=nullptr)
 
const VariableValueFlow::getLifetimeVariable (const Token *tok, const Settings &settings)
 
bool ValueFlow::isLifetimeBorrowed (const Token *tok, const Settings &settings)
 
std::string ValueFlow::lifetimeMessage (const Token *tok, const Value *val, Value::ErrorPath &errorPath)
 
CPPCHECKLIB Value ValueFlow::getLifetimeObjValue (const Token *tok, bool inconclusive=false)
 
CPPCHECKLIB std::vector< Value > ValueFlow::getLifetimeObjValues (const Token *tok, bool inconclusive=false, MathLib::bigint path=0)
 
const TokenValueFlow::getEndOfExprScope (const Token *tok, const Scope *defaultScope=nullptr, bool smallest=true)
 
void ValueFlow::combineValueProperties (const Value &value1, const Value &value2, Value &result)