public interface IBackwardFlowFunction
| Modifier and Type | Method and Description |
|---|---|
Collection<Val> |
callFlow(Statement callSite,
Val fact,
Method callee,
Statement calleeSp)
Called by the backward analysis, when the backward solver reaches the callSite.
|
Collection<wpds.interfaces.State> |
callToReturnFlow(ControlFlowGraph.Edge edge,
Val fact)
Called by the backward analysis, when data-flow by-passes a call site with data-flow fact.
|
Collection<wpds.interfaces.State> |
normalFlow(ControlFlowGraph.Edge edge,
Val fact)
Called by the backward analysis, for any non return statements or call site statements.
|
Collection<Val> |
returnFlow(Method callee,
Statement returnStmt,
Val returnedVal)
Called by the backward analysis, when the backward solver reaches the returnStmt (first
statement of callee method) of callee method with data-flow fact returnedVal.
|
void |
setSolver(BackwardBoomerangSolver solver,
com.google.common.collect.Multimap<Field,Statement> fieldLoadStatements,
com.google.common.collect.Multimap<Field,Statement> fieldStoreStatements) |
Collection<Val> returnFlow(Method callee, Statement returnStmt, Val returnedVal)
callee - The method the data-flow analysis returns from. The caller method is not
available, as it will be internally added by the framework.returnStmt - The statement from which the method returns from (will be the first statement
of the callee method)returnedVal - The data-flow fact that is returned.Collection<Val> callFlow(Statement callSite, Val fact, Method callee, Statement calleeSp)
callSite - A call site reached by the backward analysis.fact - The data-flow fact reaching the callSitecallee - The callee that may be invoked at the callSitecalleeSp - The start point of callee (in the backward analysis, this typically will be
return or throw statements)Collection<wpds.interfaces.State> normalFlow(ControlFlowGraph.Edge edge, Val fact)
edge - The control-flow graph edge that will be propagated next.fact - The incoming data-flow fact that reaches the edge.Collection<wpds.interfaces.State> callToReturnFlow(ControlFlowGraph.Edge edge, Val fact)
edge - Edge that bypasses the call site. edge.getTarget() is the call site,
edge.getStart() is any predecessorfact - The fact that by-passes the call site.void setSolver(BackwardBoomerangSolver solver, com.google.common.collect.Multimap<Field,Statement> fieldLoadStatements, com.google.common.collect.Multimap<Field,Statement> fieldStoreStatements)
Copyright © 2024. All rights reserved.