Cppcheck
|
#include "infer.h"
#include "calculate.h"
#include "errortypes.h"
#include "valueptr.h"
#include <cassert>
#include <algorithm>
#include <functional>
#include <iterator>
#include <unordered_set>
#include <utility>
Go to the source code of this file.
Functions | |
template<class Predicate , class Compare > | |
static const ValueFlow::Value * | getCompareValue (const std::list< ValueFlow::Value > &values, Predicate pred, Compare compare) |
static void | addToErrorPath (ValueFlow::Value &value, const std::vector< const ValueFlow::Value * > &refs) |
static void | setValueKind (ValueFlow::Value &value, const std::vector< const ValueFlow::Value * > &refs) |
static bool | inferNotEqual (const std::list< ValueFlow::Value > &values, MathLib::bigint x) |
std::vector< ValueFlow::Value > | infer (const ValuePtr< InferModel > &model, const std::string &op, std::list< ValueFlow::Value > lhsValues, std::list< ValueFlow::Value > rhsValues) |
std::vector< ValueFlow::Value > | infer (const ValuePtr< InferModel > &model, const std::string &op, MathLib::bigint lhs, std::list< ValueFlow::Value > rhsValues) |
std::vector< ValueFlow::Value > | infer (const ValuePtr< InferModel > &model, const std::string &op, std::list< ValueFlow::Value > lhsValues, MathLib::bigint rhs) |
std::vector< MathLib::bigint > | getMinValue (const ValuePtr< InferModel > &model, const std::list< ValueFlow::Value > &values) |
std::vector< MathLib::bigint > | getMaxValue (const ValuePtr< InferModel > &model, const std::list< ValueFlow::Value > &values) |
|
static |
Definition at line 240 of file infer.cpp.
References ValueFlow::Value::condition, ValueFlow::Value::debugPath, and ValueFlow::Value::errorPath.
Referenced by infer().
|
static |
Definition at line 35 of file infer.cpp.
References ValueFlow::Value::intvalue, and Token::values().
std::vector<MathLib::bigint> getMaxValue | ( | const ValuePtr< InferModel > & | model, |
const std::list< ValueFlow::Value > & | values | ||
) |
std::vector<MathLib::bigint> getMinValue | ( | const ValuePtr< InferModel > & | model, |
const std::list< ValueFlow::Value > & | values | ||
) |
Definition at line 377 of file infer.cpp.
Referenced by extractForLoopValues().
std::vector<ValueFlow::Value> infer | ( | const ValuePtr< InferModel > & | model, |
const std::string & | op, | ||
MathLib::bigint | lhs, | ||
std::list< ValueFlow::Value > | rhsValues | ||
) |
std::vector<ValueFlow::Value> infer | ( | const ValuePtr< InferModel > & | model, |
const std::string & | op, | ||
std::list< ValueFlow::Value > | lhsValues, | ||
MathLib::bigint | rhs | ||
) |
std::vector<ValueFlow::Value> infer | ( | const ValuePtr< InferModel > & | model, |
const std::string & | op, | ||
std::list< ValueFlow::Value > | lhsValues, | ||
std::list< ValueFlow::Value > | rhsValues | ||
) |
Definition at line 286 of file infer.cpp.
References addToErrorPath(), ValueFlow::Value::bound, calculate(), inferNotEqual(), ValueFlow::Value::Lower, ValueFlow::Value::setImpossible(), setValueKind(), and ValueFlow::Value::Upper.
Referenced by infer(), inferCondition(), valueFlowInferCondition(), and valueFlowSymbolicInfer().
|
static |
|
static |
Definition at line 261 of file infer.cpp.
References ValueFlow::Value::setInconclusive(), ValueFlow::Value::setKnown(), and ValueFlow::Value::setPossible().
Referenced by infer().