Interface BackwardTransferFunction<V extends AbstractValue<V>,​S extends Store<S>>

  • Type Parameters:
    V - the abstract value type to be tracked by the analysis
    S - the store type used in the analysis
    All Superinterfaces:
    NodeVisitor<TransferResult<V,​S>,​TransferInput<V,​S>>, TransferFunction<V,​S>
    All Known Implementing Classes:
    BusyExprTransfer, LiveVarTransfer

    public interface BackwardTransferFunction<V extends AbstractValue<V>,​S extends Store<S>>
    extends TransferFunction<V,​S>
    Interface of a backward transfer function for the abstract interpretation used for the backward flow analysis.

    Important: The individual transfer functions ( visit*) are allowed to use (and modify) the stores contained in the argument passed; the ownership is transferred from the caller to that function.

    • Method Detail

      • initialNormalExitStore

        @SideEffectFree
        S initialNormalExitStore​(UnderlyingAST underlyingAST,
                                 java.util.List<ReturnNode> returnNodes)
        Returns the initial store that should be used at the normal exit block.
        Parameters:
        underlyingAST - the underlying AST of the given control flow graph
        returnNodes - the return nodes of the given control flow graph (an empty list if the underlying AST is not a method)
        Returns:
        the initial store that should be used at the normal exit block
      • initialExceptionalExitStore

        @SideEffectFree
        S initialExceptionalExitStore​(UnderlyingAST underlyingAST)
        Returns the initial store that should be used at the exceptional exit block or given the underlying AST of a control flow graph.
        Parameters:
        underlyingAST - the underlying AST of the given control flow graph
        Returns:
        the initial store that should be used at the exceptional exit block