Interface IFlowFunctionMap<T>

Type Parameters:
T - type of node in the supergraph
All Known Subinterfaces:
IPartiallyBalancedFlowFunctions<T>
All Known Implementing Classes:
IdentityFlowFunctions, IDTransferFunctions, IFDSTaintFlowFunctionProvider, ReachabilityFunctions, SliceFunctions, TaintTransferFunctions

public interface IFlowFunctionMap<T>
A map from an edge in a supergraph to a flow function
  • Method Details

    • getNormalFlowFunction

      IUnaryFlowFunction getNormalFlowFunction(T src, T dest)
      Returns:
      the flow function for a "normal" edge in the supergraph from src -> dest
    • getCallFlowFunction

      IUnaryFlowFunction getCallFlowFunction(T src, T dest, T ret)
      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
    • getReturnFlowFunction

      IFlowFunction getReturnFlowFunction(T call, T src, T dest)
      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
    • getCallToReturnFlowFunction

      IUnaryFlowFunction getCallToReturnFlowFunction(T src, T dest)
      Returns:
      the flow function for a "call-to-return" edge in the supergraph from src -> dest
    • getCallNoneToReturnFlowFunction

      IUnaryFlowFunction getCallNoneToReturnFlowFunction(T src, T dest)
      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.