clang  15.0.0git
Classes | Namespaces | Functions
TypeErasedDataflowAnalysis.h File Reference
#include <utility>
#include <vector>
#include "clang/AST/ASTContext.h"
#include "clang/AST/Stmt.h"
#include "clang/Analysis/CFG.h"
#include "clang/Analysis/FlowSensitive/ControlFlowContext.h"
#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
#include "clang/Analysis/FlowSensitive/DataflowLattice.h"
#include "llvm/ADT/Any.h"
#include "llvm/ADT/Optional.h"
#include "llvm/Support/Error.h"
Include dependency graph for TypeErasedDataflowAnalysis.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


struct  clang::dataflow::TypeErasedLattice
 Type-erased lattice element container. More...
class  clang::dataflow::TypeErasedDataflowAnalysis
 Type-erased base class for dataflow analyses built on a single lattice type. More...
struct  clang::dataflow::TypeErasedDataflowAnalysisState
 Type-erased model of the program at a given program point. More...


 Dataflow Directional Tag Classes.


TypeErasedDataflowAnalysisState clang::dataflow::transferBlock (const ControlFlowContext &CFCtx, std::vector< llvm::Optional< TypeErasedDataflowAnalysisState >> &BlockStates, const CFGBlock &Block, const Environment &InitEnv, TypeErasedDataflowAnalysis &Analysis, std::function< void(const CFGStmt &, const TypeErasedDataflowAnalysisState &)> HandleTransferredStmt=nullptr)
 Transfers the state of a basic block by evaluating each of its statements in the context of Analysis and the states of its predecessors that are available in BlockStates. More...
llvm::Expected< std::vector< llvm::Optional< TypeErasedDataflowAnalysisState > > > clang::dataflow::runTypeErasedDataflowAnalysis (const ControlFlowContext &CFCtx, TypeErasedDataflowAnalysis &Analysis, const Environment &InitEnv)
 Performs dataflow analysis and returns a mapping from basic block IDs to dataflow analysis states that model the respective basic blocks. More...