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 Details

    • initialNormalExitStore

      @SideEffectFree S initialNormalExitStore(UnderlyingAST underlyingAST, 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