From 3b8de2df269dd8068ae1724501dae80adcc8dffe Mon Sep 17 00:00:00 2001 From: benSepanski Date: Thu, 9 Sep 2021 14:01:07 -0500 Subject: [PATCH 1/2] Handle unreachable nodes in MHGDominatorsFinder --- src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java b/src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java index 567c0e139c0..839168b34f7 100644 --- a/src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java +++ b/src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java @@ -84,6 +84,9 @@ protected void doAnalysis() { BitSet self = new BitSet(); self.set(indexOf(o)); nodeToFlowSet.put(o, self); + } else if (graph.getPredsOf(o).isEmpty()) + BitSet empty = new BitSet(); + nodeToFlowSet.put(o, empty); } else { nodeToFlowSet.put(o, fullSet); } @@ -93,7 +96,7 @@ protected void doAnalysis() { do { changed = false; for (N o : graph) { - if (heads.contains(o)) { + if (heads.contains(o) || graph.getPredsOf(o).isEmpty()) { continue; } From 71f6dcee9f6b958a0f66e7f1ca252cc6eb992561 Mon Sep 17 00:00:00 2001 From: benSepanski Date: Thu, 9 Sep 2021 14:49:05 -0500 Subject: [PATCH 2/2] fix missing brace --- src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java b/src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java index 839168b34f7..b7211e73825 100644 --- a/src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java +++ b/src/main/java/soot/toolkits/graph/MHGDominatorsFinder.java @@ -84,7 +84,7 @@ protected void doAnalysis() { BitSet self = new BitSet(); self.set(indexOf(o)); nodeToFlowSet.put(o, self); - } else if (graph.getPredsOf(o).isEmpty()) + } else if (graph.getPredsOf(o).isEmpty()) { BitSet empty = new BitSet(); nodeToFlowSet.put(o, empty); } else {