From fc4639291f736553e96eaec5fc7b4c82645db129 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Mon, 15 Jan 2024 10:00:55 -0800 Subject: Some minor fixes found via fuzzing (#60) --- .../src/main/java/com/seaofnodes/simple/node/IfNode.java | 2 +- .../src/main/java/com/seaofnodes/simple/node/Node.java | 6 ++---- .../main/java/com/seaofnodes/simple/node/PhiNode.java | 5 ++++- .../main/java/com/seaofnodes/simple/node/ScopeNode.java | 16 ++++++++++++---- .../test/java/com/seaofnodes/simple/Chapter08Test.java | 10 ++++++++++ 5 files changed, 29 insertions(+), 10 deletions(-) (limited to 'chapter08/src') diff --git a/chapter08/src/main/java/com/seaofnodes/simple/node/IfNode.java b/chapter08/src/main/java/com/seaofnodes/simple/node/IfNode.java index e573010d..1d1da4fa 100644 --- a/chapter08/src/main/java/com/seaofnodes/simple/node/IfNode.java +++ b/chapter08/src/main/java/com/seaofnodes/simple/node/IfNode.java @@ -46,7 +46,7 @@ public class IfNode extends MultiNode { return prior instanceof ProjNode proj // Repeated test, dominated on one side. Test result is the same. ? (proj._idx==0 ? TypeTuple.IF_TRUE : TypeTuple.IF_FALSE) - : null; // Repeated test not dominated on one side + : dom._type; // Repeated test not dominated on one side return TypeTuple.IF_BOTH; } diff --git a/chapter08/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter08/src/main/java/com/seaofnodes/simple/node/Node.java index 22b6f264..fd312c3d 100644 --- a/chapter08/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter08/src/main/java/com/seaofnodes/simple/node/Node.java @@ -140,10 +140,8 @@ public abstract class Node { sb.append("\n"); } - public final String p(int depth) { - return IRPrinter.prettyPrint(this,depth); - } - + public String p(int depth) { return IRPrinter.prettyPrint(this,depth); } + public boolean isMultiHead() { return false; } public boolean isMultiTail() { return false; } diff --git a/chapter08/src/main/java/com/seaofnodes/simple/node/PhiNode.java b/chapter08/src/main/java/com/seaofnodes/simple/node/PhiNode.java index e6cf338b..975630d0 100644 --- a/chapter08/src/main/java/com/seaofnodes/simple/node/PhiNode.java +++ b/chapter08/src/main/java/com/seaofnodes/simple/node/PhiNode.java @@ -85,10 +85,13 @@ public class PhiNode extends Node { */ private Node singleUniqueInput() { Node live = null; - for( int i=1; i