ΒΆclang::dataflow::TypeErasedDataflowAnalysisState
transferBlock(
const clang::dataflow::ControlFlowContext&
CFCtx,
std::vector<llvm::Optional<
TypeErasedDataflowAnalysisState>>&
BlockStates,
const clang::CFGBlock& Block,
const clang::dataflow::Environment& InitEnv,
clang::dataflow::TypeErasedDataflowAnalysis&
Analysis,
std::function<void(
const CFGStmt&,
const TypeErasedDataflowAnalysisState&)>
HandleTransferredStmt = nullptr)
clang::dataflow::TypeErasedDataflowAnalysisState
transferBlock(
const clang::dataflow::ControlFlowContext&
CFCtx,
std::vector<llvm::Optional<
TypeErasedDataflowAnalysisState>>&
BlockStates,
const clang::CFGBlock& Block,
const clang::dataflow::Environment& InitEnv,
clang::dataflow::TypeErasedDataflowAnalysis&
Analysis,
std::function<void(
const CFGStmt&,
const TypeErasedDataflowAnalysisState&)>
HandleTransferredStmt = nullptr)
Description
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`. `HandleTransferredStmt` (if provided) will be applied to each statement in the block, after it is evaluated. Requirements: All predecessors of `Block` except those with loop back edges must have already been transferred. States in `BlockStates` that are set to `llvm::None` represent basic blocks that are not evaluated yet.
Declared at: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h:126
Parameters
- const clang::dataflow::ControlFlowContext& CFCtx
- std::vector<llvm::Optional< TypeErasedDataflowAnalysisState>>& BlockStates
- const clang::CFGBlock& Block
- const clang::dataflow::Environment& InitEnv
- clang::dataflow::TypeErasedDataflowAnalysis& Analysis
- std::function<void( const CFGStmt&, const TypeErasedDataflowAnalysisState&)> HandleTransferredStmt = nullptr