clang: clang::dataflow::TypeErasedDataflowAnalysis Class Reference (original) (raw)
Type-erased base class for dataflow analyses built on a single lattice type. More...
#include "[clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h](TypeErasedDataflowAnalysis%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| TypeErasedDataflowAnalysis () | |
| TypeErasedDataflowAnalysis (DataflowAnalysisOptions Options) | |
| virtual | ~TypeErasedDataflowAnalysis () |
| virtual ASTContext & | getASTContext ()=0 |
| Returns the ASTContext that is used by the analysis. | |
| virtual TypeErasedLattice | typeErasedInitialElement ()=0 |
| Returns a type-erased lattice element that models the initial state of a basic block. | |
| virtual TypeErasedLattice | joinTypeErased (const TypeErasedLattice &, const TypeErasedLattice &)=0 |
| Joins two type-erased lattice elements by computing their least upper bound. | |
| virtual LatticeJoinEffect | widenTypeErased (TypeErasedLattice &Current, const TypeErasedLattice &Previous)=0 |
| Chooses a lattice element that approximates the current element at a program point, given the previous element at that point. | |
| virtual bool | isEqualTypeErased (const TypeErasedLattice &, const TypeErasedLattice &)=0 |
| Returns true if and only if the two given type-erased lattice elements are equal. | |
| virtual void | transferTypeErased (const CFGElement &, TypeErasedLattice &, Environment &)=0 |
| Applies the analysis transfer function for a given control flow graph element and type-erased lattice element. | |
| virtual void | transferBranchTypeErased (bool Branch, const Stmt *, TypeErasedLattice &, Environment &)=0 |
| Applies the analysis transfer function for a given edge from a CFG block of a conditional statement. | |
| const std::optional< DataflowAnalysisContext::Options > & | builtinOptions () const |
| If the built-in model is enabled, returns the options to be passed to them. | |
| Public Member Functions inherited from clang::dataflow::Environment::ValueModel | |
| virtual | ~ValueModel ()=default |
| virtual ComparisonResult | compare (QualType Type, const Value &Val1, const Environment &Env1, const Value &Val2, const Environment &Env2) |
| Returns: Same: Val1 is equivalent to Val2, according to the model. | |
| virtual void | join (QualType Type, const Value &Val1, const Environment &Env1, const Value &Val2, const Environment &Env2, Value &JoinedVal, Environment &JoinedEnv) |
| Modifies JoinedVal to approximate both Val1 and Val2. | |
| virtual std::optional< WidenResult > | widen (QualType Type, Value &Prev, const Environment &PrevEnv, Value &Current, Environment &CurrentEnv) |
| This function may widen the current value – replace it with an approximation that can reach a fixed point more quickly than iterated application of the transfer function alone. |
Type-erased base class for dataflow analyses built on a single lattice type.
Definition at line 54 of file TypeErasedDataflowAnalysis.h.
| clang::dataflow::TypeErasedDataflowAnalysis::TypeErasedDataflowAnalysis ( ) | inline |
|---|
◆ TypeErasedDataflowAnalysis() [2/2]
◆ ~TypeErasedDataflowAnalysis()
| virtual clang::dataflow::TypeErasedDataflowAnalysis::~TypeErasedDataflowAnalysis ( ) | inlinevirtual |
|---|
◆ builtinOptions()
◆ getASTContext()
| virtual ASTContext & clang::dataflow::TypeErasedDataflowAnalysis::getASTContext ( ) | pure virtual |
|---|
◆ isEqualTypeErased()
◆ joinTypeErased()
◆ transferBranchTypeErased()
◆ transferTypeErased()
◆ typeErasedInitialElement()
| virtual TypeErasedLattice clang::dataflow::TypeErasedDataflowAnalysis::typeErasedInitialElement ( ) | pure virtual |
|---|
◆ widenTypeErased()
The documentation for this class was generated from the following file:
- include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h