Class PruneInfeasibleExceptionEdges

java.lang.Object
edu.umd.cs.findbugs.ba.PruneInfeasibleExceptionEdges
All Implemented Interfaces:
EdgeTypes

public class PruneInfeasibleExceptionEdges extends Object implements EdgeTypes
Prune a CFG to remove infeasible exception edges. In order to determine what kinds of exceptions can be thrown by explicit ATHROW instructions, type analysis must first be performed on the unpruned CFG.
Author:
David Hovemeyer
See Also:
  • Constructor Details

    • PruneInfeasibleExceptionEdges

      public PruneInfeasibleExceptionEdges(CFG cfg, org.apache.bcel.generic.MethodGen methodGen, TypeDataflow typeDataflow)
      Constructor.
      Parameters:
      cfg - the CFG to prune
      methodGen - the method
      typeDataflow - initialized TypeDataflow object for the CFG, indicating the types of all stack locations
  • Method Details

    • execute

      public void execute() throws ClassNotFoundException
      Prune infeasible exception edges from the CFG. If the method returns normally, then the operation was successful, and the CFG should no longer contain infeasible exception edges. If ClassNotFoundException or DataflowAnalysisException are thrown, then the operation was unsuccessful, but the CFG is still valid because it was not modified. If a runtime exception is thrown, then the CFG may be partially modified and should be considered invalid.
      Throws:
      ClassNotFoundException
    • wasCFGModified

      public boolean wasCFGModified()
      Returns:
      true if modified