clang  14.0.0git
Namespaces | Functions
TypeErasedDataflowAnalysis.cpp File Reference
#include <memory>
#include <utility>
#include <vector>
#include "clang/AST/DeclCXX.h"
#include "clang/Analysis/Analyses/PostOrderCFGView.h"
#include "clang/Analysis/CFG.h"
#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
#include "clang/Analysis/FlowSensitive/DataflowWorklist.h"
#include "clang/Analysis/FlowSensitive/Transfer.h"
#include "clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h"
#include "clang/Analysis/FlowSensitive/Value.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/Optional.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for TypeErasedDataflowAnalysis.cpp:

Go to the source code of this file.

Namespaces

 clang
 
 clang::dataflow
 Dataflow Directional Tag Classes.
 

Functions

static TypeErasedDataflowAnalysisState clang::dataflow::computeBlockInputState (const ControlFlowContext &CFCtx, std::vector< llvm::Optional< TypeErasedDataflowAnalysisState >> &BlockStates, const CFGBlock &Block, const Environment &InitEnv, TypeErasedDataflowAnalysis &Analysis)
 Computes the input state for a given basic block by joining the output states of its predecessors. More...
 
static void clang::dataflow::transferCFGStmt (const CFGStmt &CfgStmt, TypeErasedDataflowAnalysis &Analysis, TypeErasedDataflowAnalysisState &State, std::function< void(const CFGStmt &, const TypeErasedDataflowAnalysisState &)> HandleTransferredStmt)
 Transfers State by evaluating CfgStmt in the context of Analysis. More...
 
static void clang::dataflow::transferCFGInitializer (const CFGInitializer &CfgInit, TypeErasedDataflowAnalysisState &State)
 Transfers State by evaluating CfgInit. More...
 
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...
 
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...