public interface IForwardFlowFunction
| Modifier and Type | Method and Description |
|---|---|
Collection<Val> |
callFlow(Statement callSite,
Val factAtCallSite,
Method callee)
Called by the forward analysis, when the forward solver reaches the callSite.
|
Collection<wpds.interfaces.State> |
callToReturnFlow(ForwardQuery query,
ControlFlowGraph.Edge edge,
Val fact)
Called by the forward analysis, when data-flow by-passes a call site with data-flow fact.
|
Collection<wpds.interfaces.State> |
normalFlow(ForwardQuery query,
ControlFlowGraph.Edge edge,
Val fact)
Called by the forward analysis, for any non return statements or call site statements.
|
Collection<Val> |
returnFlow(Method callee,
Statement returnStmt,
Val returnedVal)
Called by the forward analysis, when the forward solver reaches the returnStmt (any last
statement of callee method) of callee method with data-flow fact returnedVal.
|
void |
setSolver(ForwardBoomerangSolver 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 any last/exit
statement of the callee method)returnedVal - The data-flow fact that is returned.Collection<Val> callFlow(Statement callSite, Val factAtCallSite, Method callee)
callSite - A call site reached by the backward analysis.factAtCallSite - The data-flow fact reaching the callSitecallee - The callee that may be invoked at the callSiteCollection<wpds.interfaces.State> normalFlow(ForwardQuery query, ControlFlowGraph.Edge edge, Val fact)
Note: The logic differs from general IFDS logic here. edge.getStart() can also contain a call site, but fact is not used in the call site (no parameter or base variable of the call expression) .
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(ForwardQuery query, ControlFlowGraph.Edge edge, Val fact)
edge - Edge that bypasses the call site. edge.getStart() is the call site,
edge.getTarget() is any succsessorfact - The fact that by-passes the call site.void setSolver(ForwardBoomerangSolver solver, com.google.common.collect.Multimap<Field,Statement> fieldLoadStatements, com.google.common.collect.Multimap<Field,Statement> fieldStoreStatements)
Copyright © 2024. All rights reserved.