summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--appl/cmd/limbo/gen.b3
-rw-r--r--dis/limbo.disbin343171 -> 343192 bytes
-rw-r--r--include/version.h2
-rw-r--r--limbo/gen.c7
5 files changed, 9 insertions, 5 deletions
diff --git a/CHANGES b/CHANGES
index 1cd99ad9..13e8aab2 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+20080201
+ change foldbranch in limbo/gen.c to prevent loss of `no return value' diagnostics
20080131
update emu/Nt/^(os.c ie-os.c ie-win.c ie emu), but properly this time [issue 81]
remove _USE_32BIT_TIME_T from Nt/386/include/lib9.h, and time() def'n from emu/Nt/*.c [issue 81]
diff --git a/appl/cmd/limbo/gen.b b/appl/cmd/limbo/gen.b
index 062980fb..10988f48 100644
--- a/appl/cmd/limbo/gen.b
+++ b/appl/cmd/limbo/gen.b
@@ -562,7 +562,8 @@ foldbranch(in: ref Inst)
next := in.next;
*in = *b;
in.next = next;
- # b.reach = byte 1;
+ if(b.op == IRET)
+ b.reach = byte 1; # might be default return (TO DO)
continue;
}
foldbranch(in.branch);
diff --git a/dis/limbo.dis b/dis/limbo.dis
index 5fbee7d1..445c1d3a 100644
--- a/dis/limbo.dis
+++ b/dis/limbo.dis
Binary files differ
diff --git a/include/version.h b/include/version.h
index 792e85d0..4928d5f7 100644
--- a/include/version.h
+++ b/include/version.h
@@ -1 +1 @@
-#define VERSION "Fourth Edition (20080131)"
+#define VERSION "Fourth Edition (20080201)"
diff --git a/limbo/gen.c b/limbo/gen.c
index feb87d64..64dce6e5 100644
--- a/limbo/gen.c
+++ b/limbo/gen.c
@@ -590,10 +590,11 @@ foldbranch(Inst *in)
next = in->next;
*in = *b;
in->next = next;
- /* b->reach = 1; */ /* why ? */
+ if(b->op == IRET)
+ b->reach = 1; /* might be default return (TO DO) */
continue;
}
- foldbranch(in->branch);
+ foldbranch(b);
return;
default:
if(in->branch != nil)
@@ -976,7 +977,7 @@ instconv(Fmt *f)
in = va_arg(f->args, Inst*);
op = nil;
- if(in->op >= 0 && in->op < MAXDIS)
+ if(in->op < MAXDIS)
op = instname[in->op];
if(op == nil)
op = "??";