Interface MinimalCFG<T>

All Superinterfaces:
EdgeManager<T>, Graph<T>, Iterable<T>, NodeManager<T>, NumberedEdgeManager<T>, NumberedGraph<T>, NumberedNodeManager<T>
All Known Subinterfaces:
ControlFlowGraph<I,T>
All Known Implementing Classes:
AbstractCFG, AstInducedCFG, AstTranslator.AstCFG, DelegatingCFG, DexCFG, ExplodedControlFlowGraph, InducedCFG, JSInducedCFG, MutableCFG, PrunedCFG, ShrikeCFG, SSACFG

public interface MinimalCFG<T> extends NumberedGraph<T>
  • Method Details

    • entry

      T entry()
      Return the entry basic block in the CFG
    • exit

      T exit()
      Returns:
      the synthetic exit block for the cfg
    • getExceptionalSuccessors

      List<T> getExceptionalSuccessors(T b)
      The order of blocks returned must indicate the exception-handling scope. So the first block is the first candidate catch block, and so on. With this invariant one can compute the exceptional control flow for a given exception type.
      Returns:
      the basic blocks which may be reached from b via exceptional control flow
    • getNormalSuccessors

      Collection<T> getNormalSuccessors(T b)
      The order of blocks returned should be arbitrary but deterministic.
      Returns:
      the basic blocks which may be reached from b via normal control flow
    • getExceptionalPredecessors

      Collection<T> getExceptionalPredecessors(T b)
      The order of blocks returned should be arbitrary but deterministic.
      Returns:
      the basic blocks from which b may be reached via exceptional control flow
    • getNormalPredecessors

      Collection<T> getNormalPredecessors(T b)
      The order of blocks returned should be arbitrary but deterministic.
      Returns:
      the basic blocks from which b may be reached via normal control flow