summaryrefslogtreecommitdiff
path: root/chapter22/src/main/java/com/seaofnodes
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-09-27 09:09:23 -0700
committerCliff Click <cliffc@acm.org>2026-09-27 09:09:23 -0700
commit3d226b49e1cd23b41fd9baf3917f751973c1ad11 (patch)
tree5c59f2b2de102c1089e71e29f59c71357d3b5512 /chapter22/src/main/java/com/seaofnodes
parent5f85f435aeece40e2c0770f89d7642f9af718531 (diff)
downloadSimple-3d226b49e1cd23b41fd9baf3917f751973c1ad11.tar.gz
Simple-3d226b49e1cd23b41fd9baf3917f751973c1ad11.zip
minor fixes
Fix CI build Backport ch 23 fix to ch 22.
Diffstat (limited to 'chapter22/src/main/java/com/seaofnodes')
-rw-r--r--chapter22/src/main/java/com/seaofnodes/simple/Parser.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/chapter22/src/main/java/com/seaofnodes/simple/Parser.java b/chapter22/src/main/java/com/seaofnodes/simple/Parser.java
index 72fe6a71..087fd1fd 100644
--- a/chapter22/src/main/java/com/seaofnodes/simple/Parser.java
+++ b/chapter22/src/main/java/com/seaofnodes/simple/Parser.java
@@ -236,8 +236,13 @@ public class Parser {
last = parseStatement();
// Last expression is the return except for the top-level main
- if( ctrl()._type==Type.CONTROL && fun.sig() != _code._main )
- fun.addReturn(ctrl(), _scope.mem().merge(), last);
+ if( ctrl()._type==Type.CONTROL )
+ if( fun.sig() != _code._main )
+ fun.addReturn(ctrl(), _scope.mem().merge(), last);
+ else {
+ fun.setDef(1,XCTRL); // Kill default main
+ _code.addAll(fun._outputs);
+ }
// Pop off the inProgress node on the multi-exit Region merge
assert r.inProgress();