70 std::set<nonneg int>
getExprVarIds(
const Token* expr,
bool* localOut =
nullptr,
bool* unknownVarIdOut =
nullptr)
const;
83 Result
checkRecursive(
const Token *expr,
const Token *startToken,
const Token *endToken,
const std::set<nonneg int> &exprVarIds,
bool local,
bool inInnerClass,
int depth=0);
Forward data flow analysis for checks.
const Settings & mSettings
bool possiblyAliased(const Token *expr, const Token *startToken) const
Is there some possible alias for given expression.
std::vector< KnownAndToken > mValueFlow
bool hasOperand(const Token *tok, const Token *lhs) const
enum FwdAnalysis::What mWhat
static bool isEscapedAlias(const Token *expr)
Result check(const Token *expr, const Token *startToken, const Token *endToken)
FwdAnalysis(const Settings &settings)
Result checkRecursive(const Token *expr, const Token *startToken, const Token *endToken, const std::set< nonneg int > &exprVarIds, bool local, bool inInnerClass, int depth=0)
std::set< nonneg int > getExprVarIds(const Token *expr, bool *localOut=nullptr, bool *unknownVarIdOut=nullptr) const
const Token * reassign(const Token *expr, const Token *startToken, const Token *endToken)
Check if "expr" is reassigned.
bool unusedValue(const Token *expr, const Token *startToken, const Token *endToken)
Check if "expr" is used.
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.
Information about a class type.
Result of forward analysis.
Result(Type type, const Token *token)
enum FwdAnalysis::Result::Type type