ΒΆ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