Package soot.jimple.toolkits.ide.icfg
Class BackwardsInterproceduralCFG
- java.lang.Object
-
- soot.jimple.toolkits.ide.icfg.BackwardsInterproceduralCFG
-
- All Implemented Interfaces:
heros.InterproceduralCFG<Unit,SootMethod>,BiDiInterproceduralCFG<Unit,SootMethod>
public class BackwardsInterproceduralCFG extends Object implements BiDiInterproceduralCFG<Unit,SootMethod>
Same asJimpleBasedInterproceduralCFGbut based on inverted unit graphs. This should be used for backward analyses.
-
-
Field Summary
Fields Modifier and Type Field Description protected BiDiInterproceduralCFG<Unit,SootMethod>delegate
-
Constructor Summary
Constructors Constructor Description BackwardsInterproceduralCFG(BiDiInterproceduralCFG<Unit,SootMethod> fwICFG)
-
Method Summary
-
-
-
Field Detail
-
delegate
protected final BiDiInterproceduralCFG<Unit,SootMethod> delegate
-
-
Constructor Detail
-
BackwardsInterproceduralCFG
public BackwardsInterproceduralCFG(BiDiInterproceduralCFG<Unit,SootMethod> fwICFG)
-
-
Method Detail
-
getSuccsOf
public List<Unit> getSuccsOf(Unit n)
- Specified by:
getSuccsOfin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
getStartPointsOf
public Collection<Unit> getStartPointsOf(SootMethod m)
- Specified by:
getStartPointsOfin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
getReturnSitesOfCallAt
public List<Unit> getReturnSitesOfCallAt(Unit n)
- Specified by:
getReturnSitesOfCallAtin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
isExitStmt
public boolean isExitStmt(Unit stmt)
- Specified by:
isExitStmtin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
isStartPoint
public boolean isStartPoint(Unit stmt)
- Specified by:
isStartPointin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
allNonCallStartNodes
public Set<Unit> allNonCallStartNodes()
- Specified by:
allNonCallStartNodesin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
getPredsOf
public List<Unit> getPredsOf(Unit u)
- Specified by:
getPredsOfin interfaceBiDiInterproceduralCFG<Unit,SootMethod>- Specified by:
getPredsOfin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
getEndPointsOf
public Collection<Unit> getEndPointsOf(SootMethod m)
- Specified by:
getEndPointsOfin interfaceBiDiInterproceduralCFG<Unit,SootMethod>
-
getPredsOfCallAt
public List<Unit> getPredsOfCallAt(Unit u)
- Specified by:
getPredsOfCallAtin interfaceBiDiInterproceduralCFG<Unit,SootMethod>
-
allNonCallEndNodes
public Set<Unit> allNonCallEndNodes()
- Specified by:
allNonCallEndNodesin interfaceBiDiInterproceduralCFG<Unit,SootMethod>
-
getMethodOf
public SootMethod getMethodOf(Unit n)
- Specified by:
getMethodOfin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
getCalleesOfCallAt
public Collection<SootMethod> getCalleesOfCallAt(Unit n)
- Specified by:
getCalleesOfCallAtin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
getCallersOf
public Collection<Unit> getCallersOf(SootMethod m)
- Specified by:
getCallersOfin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
getCallsFromWithin
public Set<Unit> getCallsFromWithin(SootMethod m)
- Specified by:
getCallsFromWithinin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
isCallStmt
public boolean isCallStmt(Unit stmt)
- Specified by:
isCallStmtin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
getOrCreateUnitGraph
public DirectedGraph<Unit> getOrCreateUnitGraph(SootMethod m)
- Specified by:
getOrCreateUnitGraphin interfaceBiDiInterproceduralCFG<Unit,SootMethod>
-
getParameterRefs
public List<Value> getParameterRefs(SootMethod m)
- Specified by:
getParameterRefsin interfaceBiDiInterproceduralCFG<Unit,SootMethod>
-
isFallThroughSuccessor
public boolean isFallThroughSuccessor(Unit stmt, Unit succ)
- Specified by:
isFallThroughSuccessorin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
isBranchTarget
public boolean isBranchTarget(Unit stmt, Unit succ)
- Specified by:
isBranchTargetin interfaceheros.InterproceduralCFG<Unit,SootMethod>
-
isReturnSite
public boolean isReturnSite(Unit n)
Description copied from interface:BiDiInterproceduralCFGGets whether the given statement is a return site of at least one call- Specified by:
isReturnSitein interfaceBiDiInterproceduralCFG<Unit,SootMethod>- Parameters:
n- The statement to check- Returns:
- True if the given statement is a return site, otherwise false
-
isReachable
public boolean isReachable(Unit u)
Description copied from interface:BiDiInterproceduralCFGChecks whether the given statement is rachable from the entry point- Specified by:
isReachablein interfaceBiDiInterproceduralCFG<Unit,SootMethod>- Parameters:
u- The statement to check- Returns:
- True if there is a control flow path from the entry point of the program to the given statement, otherwise false
-
-