Class 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"
    • Method Detail

      • 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.
      • 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