public class BackwardsInterproceduralCFG extends Object implements BiDiInterproceduralCFG<Unit,SootMethod>
JimpleBasedInterproceduralCFG
but based on inverted unit graphs.
This should be used for backward analyses.Modifier and Type | Field and Description |
---|---|
protected BiDiInterproceduralCFG<Unit,SootMethod> |
delegate |
Constructor and Description |
---|
BackwardsInterproceduralCFG(BiDiInterproceduralCFG<Unit,SootMethod> fwICFG) |
protected final BiDiInterproceduralCFG<Unit,SootMethod> delegate
public BackwardsInterproceduralCFG(BiDiInterproceduralCFG<Unit,SootMethod> fwICFG)
public List<Unit> getSuccsOf(Unit n)
getSuccsOf
in interface heros.InterproceduralCFG<Unit,SootMethod>
public Collection<Unit> getStartPointsOf(SootMethod m)
getStartPointsOf
in interface heros.InterproceduralCFG<Unit,SootMethod>
public List<Unit> getReturnSitesOfCallAt(Unit n)
getReturnSitesOfCallAt
in interface heros.InterproceduralCFG<Unit,SootMethod>
public boolean isExitStmt(Unit stmt)
isExitStmt
in interface heros.InterproceduralCFG<Unit,SootMethod>
public boolean isStartPoint(Unit stmt)
isStartPoint
in interface heros.InterproceduralCFG<Unit,SootMethod>
public Set<Unit> allNonCallStartNodes()
allNonCallStartNodes
in interface heros.InterproceduralCFG<Unit,SootMethod>
public List<Unit> getPredsOf(Unit u)
getPredsOf
in interface heros.InterproceduralCFG<Unit,SootMethod>
getPredsOf
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public Collection<Unit> getEndPointsOf(SootMethod m)
getEndPointsOf
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public List<Unit> getPredsOfCallAt(Unit u)
getPredsOfCallAt
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public Set<Unit> allNonCallEndNodes()
allNonCallEndNodes
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public SootMethod getMethodOf(Unit n)
getMethodOf
in interface heros.InterproceduralCFG<Unit,SootMethod>
public Collection<SootMethod> getCalleesOfCallAt(Unit n)
getCalleesOfCallAt
in interface heros.InterproceduralCFG<Unit,SootMethod>
public Collection<Unit> getCallersOf(SootMethod m)
getCallersOf
in interface heros.InterproceduralCFG<Unit,SootMethod>
public Set<Unit> getCallsFromWithin(SootMethod m)
getCallsFromWithin
in interface heros.InterproceduralCFG<Unit,SootMethod>
public boolean isCallStmt(Unit stmt)
isCallStmt
in interface heros.InterproceduralCFG<Unit,SootMethod>
public DirectedGraph<Unit> getOrCreateUnitGraph(SootMethod m)
getOrCreateUnitGraph
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public List<Value> getParameterRefs(SootMethod m)
getParameterRefs
in interface BiDiInterproceduralCFG<Unit,SootMethod>
public boolean isFallThroughSuccessor(Unit stmt, Unit succ)
isFallThroughSuccessor
in interface heros.InterproceduralCFG<Unit,SootMethod>
public boolean isBranchTarget(Unit stmt, Unit succ)
isBranchTarget
in interface heros.InterproceduralCFG<Unit,SootMethod>
public boolean isReturnSite(Unit n)
BiDiInterproceduralCFG
isReturnSite
in interface BiDiInterproceduralCFG<Unit,SootMethod>
n
- The statement to checkpublic boolean isReachable(Unit u)
BiDiInterproceduralCFG
isReachable
in interface BiDiInterproceduralCFG<Unit,SootMethod>
u
- The statement to check