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: