Class ReachabilityFunctions<T>

java.lang.Object
com.ibm.wala.ipa.slicer.ReachabilityFunctions<T>
All Implemented Interfaces:
IFlowFunctionMap<T>

public class ReachabilityFunctions<T> extends Object implements IFlowFunctionMap<T>
Trivial flow functions to represent simple reachability. All functions simply return "0"
  • Field Details

  • Method Details

    • createReachabilityFunctions

      public static <T> ReachabilityFunctions<T> createReachabilityFunctions()
    • getCallNoneToReturnFlowFunction

      public IUnaryFlowFunction getCallNoneToReturnFlowFunction(T src, T dest)
      Specified by:
      getCallNoneToReturnFlowFunction in interface IFlowFunctionMap<T>
      Returns:
      the flow function for a "call-to-return" edge in the supergraph from src -> dest, when the supergraph does not contain any callees of src. This happens via, e.g., slicing.
    • getCallToReturnFlowFunction

      public IUnaryFlowFunction getCallToReturnFlowFunction(T src, T dest)
      Specified by:
      getCallToReturnFlowFunction in interface IFlowFunctionMap<T>
      Returns:
      the flow function for a "call-to-return" edge in the supergraph from src -> dest
    • getNormalFlowFunction

      public IUnaryFlowFunction getNormalFlowFunction(T src, T dest)
      Specified by:
      getNormalFlowFunction in interface IFlowFunctionMap<T>
      Returns:
      the flow function for a "normal" edge in the supergraph from src -> dest
    • getReturnFlowFunction

      public IFlowFunction getReturnFlowFunction(T call, T src, T dest)
      Specified by:
      getReturnFlowFunction in interface IFlowFunctionMap<T>
      Parameters:
      call - supergraph node of the call instruction for this return edge.
      Returns:
      the flow function for a "return" edge in the supergraph from src -> dest
    • getReturnFlowFunction

      public IFlowFunction getReturnFlowFunction(T src, T dest)
    • getCallFlowFunction

      public IUnaryFlowFunction getCallFlowFunction(T src, T dest, T ret)
      Specified by:
      getCallFlowFunction in interface IFlowFunctionMap<T>
      Parameters:
      src - the call block
      dest - the entry of the callee
      ret - the block that will be returned to, in the caller. This can be null .. signifying that facts can flow into the callee but not return
      Returns:
      the flow function for a "call" edge in the supergraph from src -> dest