Class InterproceduralCFG
java.lang.Object
com.ibm.wala.ipa.cfg.AbstractInterproceduralCFG<ISSABasicBlock>
com.ibm.wala.ipa.cfg.InterproceduralCFG
- All Implemented Interfaces:
EdgeManager<BasicBlockInContext<ISSABasicBlock>>, Graph<BasicBlockInContext<ISSABasicBlock>>, NodeManager<BasicBlockInContext<ISSABasicBlock>>, NumberedEdgeManager<BasicBlockInContext<ISSABasicBlock>>, NumberedGraph<BasicBlockInContext<ISSABasicBlock>>, NumberedNodeManager<BasicBlockInContext<ISSABasicBlock>>, Iterable<BasicBlockInContext<ISSABasicBlock>>
Interprocedural control-flow graph.
TODO: think about a better implementation; perhaps a lazy view of the constituent CFGs Lots of ways this can be optimized?
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionMethods inherited from class AbstractInterproceduralCFG
addEdge, addEdgesToNonEntryBlock, addNode, callGraphUpdated, containsNode, getCallGraph, getCallSiteForCallBlock, getCallSites, getCallTargets, getCFG, getCGNode, getEntry, getExit, getLastInstructionForBlock, getMaxNumber, getNode, getNumber, getNumberOfNodes, getPredNodeCount, getPredNodeNumbers, getPredNodes, getReturnSites, getSuccNodeCount, getSuccNodeNumbers, getSuccNodes, hasCall, hasCall, hasEdge, isReturn, iterateNodes, iterator, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges, stream, toStringMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Iterable
forEach, spliterator
-
Constructor Details
-
InterproceduralCFG
-
InterproceduralCFG
-
-
Method Details
-
getCFG
public ControlFlowGraph<SSAInstruction, ISSABasicBlock> getCFG(CGNode n) throws IllegalArgumentException - Specified by:
getCFGin classAbstractInterproceduralCFG<ISSABasicBlock>- Returns:
- the cfg for n, or null if none found
- Throws:
IllegalArgumentException- if n == null
-