Stmt - The type of nodes in the interprocedural control-flow graph.
Typically Unit.F - The type of data-flow facts to be computed by the tabulation
problem.Method - The type of objects used to represent methods. Typically
SootMethod.public interface FlowFunctions<Stmt,FieldRef,F,Method>
| Modifier and Type | Method and Description |
|---|---|
FlowFunction<FieldRef,F,Stmt,Method> |
getCallFlowFunction(Stmt callStmt,
Method destinationMethod)
Returns the flow function that computes the flow for a call statement.
|
FlowFunction<FieldRef,F,Stmt,Method> |
getCallToReturnFlowFunction(Stmt callSite,
Stmt returnSite)
Returns the flow function that computes the flow from a call site to a
successor statement just after the call.
|
FlowFunction<FieldRef,F,Stmt,Method> |
getNormalFlowFunction(Stmt curr)
Returns the flow function that computes the flow for a normal statement,
i.e., a statement that is neither a call nor an exit statement.
|
FlowFunction<FieldRef,F,Stmt,Method> |
getReturnFlowFunction(Stmt callSite,
Method calleeMethod,
Stmt exitStmt,
Stmt returnSite)
Returns the flow function that computes the flow for a an exit from a
method.
|
FlowFunction<FieldRef,F,Stmt,Method> getNormalFlowFunction(Stmt curr)
curr - The current statement.FlowFunction<FieldRef,F,Stmt,Method> getCallFlowFunction(Stmt callStmt, Method destinationMethod)
callStmt - The statement containing the invoke expression giving rise to
this call.destinationMethod - The concrete target method for which the flow is computed.FlowFunction<FieldRef,F,Stmt,Method> getReturnFlowFunction(Stmt callSite, Method calleeMethod, Stmt exitStmt, Stmt returnSite)
callSite - One of all the call sites in the program that called the
method from which the exitStmt is actually returning. This
information can be exploited to compute a value that depends on
information from before the call.
Note: This value might be null if
using a tabulation problem with SolverConfiguration.followReturnsPastSeeds()
returning true in a situation where the call graph
does not contain a caller for the method that is returned from.calleeMethod - The method from which exitStmt returns.exitStmt - The statement exiting the method, typically a return or throw
statement.returnSite - One of the successor statements of the callSite. There may be
multiple successors in case of possible exceptional flow. This
method will be called for each such successor.
Note: This value might be null if
using a tabulation problem with SolverConfiguration.followReturnsPastSeeds()
returning true in a situation where the call graph
does not contain a caller for the method that is returned from.FlowFunction<FieldRef,F,Stmt,Method> getCallToReturnFlowFunction(Stmt callSite, Stmt returnSite)
getCallFlowFunction(Object, Object), only
such information that actually concerns the callee method. All other
information, e.g. information that cannot be modified by the call, is
passed along this call-return edge.callSite - The statement containing the invoke expression giving rise to
this call.returnSite - The return site to which the information is propagated. For
exceptional flow, this may actually be the start of an
exception handler.