diff options
Diffstat (limited to 'vaporize/library/ControlFlowGraph.java')
-rw-r--r-- | vaporize/library/ControlFlowGraph.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/vaporize/library/ControlFlowGraph.java b/vaporize/library/ControlFlowGraph.java index 2a8caef..1e24dd6 100644 --- a/vaporize/library/ControlFlowGraph.java +++ b/vaporize/library/ControlFlowGraph.java @@ -44,7 +44,7 @@ public class ControlFlowGraph { } if (ret == null) - MinimalLogger.severe(String.format("Could not find a node matching %s", + MinimalLogger.severe(String.format("Could not find the next node for %s", a.toString())); return ret; @@ -58,6 +58,8 @@ public class ControlFlowGraph { protected String addEdge(CFGNode source, CFGNode dest) { /** * Iff the CFGNodes are different, construct an edge between them. + * All variables reaching the parent also reach the children. + * * Returns a string capable of being manipulated by graphviz. */ String ret = ""; @@ -70,6 +72,8 @@ public class ControlFlowGraph { source.addDest(dest); dest.addSource(source); + + dest.getReaching().addAll(source.getReaching()); ret += ";"; } else { MinimalLogger.info(String.format("Skipping duplicate edge for %d", |