|
Cppcheck
|
#include <analyzer.h>
Classes | |
| struct | Action |
| struct | Assume |
| struct | Result |
Public Types | |
| enum class | Terminate { None , Bail , Escape , Modified , Inconclusive , Conditional } |
| enum class | Direction { Forward , Reverse } |
| enum class | Evaluate { Integral , ContainerEmpty } |
Public Member Functions | |
| virtual Action | analyze (const Token *tok, Direction d) const =0 |
| Analyze a token. More... | |
| virtual void | update (Token *tok, Action a, Direction d)=0 |
| Update the state of the value. More... | |
| virtual std::vector< MathLib::bigint > | evaluate (Evaluate e, const Token *tok, const Token *ctx=nullptr) const =0 |
| Try to evaluate the value of a token(most likely a condition) More... | |
| std::vector< MathLib::bigint > | evaluate (const Token *tok, const Token *ctx=nullptr) const |
| virtual bool | lowerToPossible ()=0 |
| Lower any values to possible. More... | |
| virtual bool | lowerToInconclusive ()=0 |
| Lower any values to inconclusive. More... | |
| virtual bool | updateScope (const Token *endBlock, bool modified) const =0 |
| If the analysis is unsure whether to update a scope, this will return true if the analysis should bifurcate the scope. More... | |
| virtual bool | isConditional () const =0 |
| If the value is conditional. More... | |
| virtual bool | stopOnCondition (const Token *condTok) const =0 |
| If analysis should stop on the condition. More... | |
| virtual void | assume (const Token *tok, bool state, unsigned int flags=0)=0 |
| The condition that will be assumed during analysis. More... | |
| virtual void | updateState (const Token *tok)=0 |
| Update the state of the program at the token. More... | |
| virtual ValuePtr< Analyzer > | reanalyze (Token *tok, const std::string &msg=emptyString) const =0 |
| Return analyzer for expression at token. More... | |
| virtual bool | invalid () const |
| virtual | ~Analyzer ()=default |
| Analyzer (const Analyzer &)=default | |
Protected Member Functions | |
| Analyzer ()=default | |
Definition at line 32 of file analyzer.h.
|
strong |
| Enumerator | |
|---|---|
| Forward | |
| Reverse | |
Definition at line 149 of file analyzer.h.
|
strong |
| Enumerator | |
|---|---|
| Integral | |
| ContainerEmpty | |
Definition at line 160 of file analyzer.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| Bail | |
| Escape | |
| Modified | |
| Inconclusive | |
| Conditional | |
Definition at line 133 of file analyzer.h.
|
virtualdefault |
|
default |
|
protecteddefault |
Analyze a token.
Implemented in ValueFlowAnalyzer.
|
pure virtual |
The condition that will be assumed during analysis.
Implemented in ValueFlowAnalyzer.
|
inline |
Definition at line 168 of file analyzer.h.
References evaluate(), and Integral.
|
pure virtual |
Try to evaluate the value of a token(most likely a condition)
Implemented in ValueFlowAnalyzer.
Referenced by evaluate().
|
inlinevirtual |
Reimplemented in ExpressionAnalyzer.
Definition at line 188 of file analyzer.h.
Referenced by ValueFlowAnalyzer::analyze().
|
pure virtual |
If the value is conditional.
Implemented in MultiValueFlowAnalyzer, and SingleValueFlowAnalyzer.
|
pure virtual |
Lower any values to inconclusive.
Implemented in MultiValueFlowAnalyzer, and SingleValueFlowAnalyzer.
Referenced by ValueFlowAnalyzer::update().
|
pure virtual |
Lower any values to possible.
Implemented in MultiValueFlowAnalyzer, and SingleValueFlowAnalyzer.
|
pure virtual |
Return analyzer for expression at token.
Implemented in SingleValueFlowAnalyzer, SubExpressionAnalyzer, and ValueFlowAnalyzer.
|
pure virtual |
If analysis should stop on the condition.
Implemented in MultiValueFlowAnalyzer, and SingleValueFlowAnalyzer.
Update the state of the value.
Implemented in ValueFlowAnalyzer.
|
pure virtual |
If the analysis is unsure whether to update a scope, this will return true if the analysis should bifurcate the scope.
Implemented in MultiValueFlowAnalyzer, and SingleValueFlowAnalyzer.
|
pure virtual |
Update the state of the program at the token.
Implemented in ValueFlowAnalyzer.