summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asmcomp/liveness.ml2
-rw-r--r--asmcomp/split.ml2
2 files changed, 2 insertions, 2 deletions
diff --git a/asmcomp/liveness.ml b/asmcomp/liveness.ml
index 1e9bd6712..ad1f31c74 100644
--- a/asmcomp/liveness.ml
+++ b/asmcomp/liveness.ml
@@ -71,7 +71,7 @@ let rec live i finally =
i.live <- before_body;
before_body
| Iexit ->
- (* i.live remains empty since no regs are live across *)
+ i.live <- !live_at_exit; (* These regs are live across *)
!live_at_exit
| Itrywith(body, handler) ->
let at_join = live i.next finally in
diff --git a/asmcomp/split.ml b/asmcomp/split.ml
index 3a5e902a5..f22ddc93e 100644
--- a/asmcomp/split.ml
+++ b/asmcomp/split.ml
@@ -170,7 +170,7 @@ let rec rename i sub =
(instr_cons (Icatch(new_body, new_handler)) [||] [||] new_next,
sub_next)
| Iexit ->
- exit_subst := merge_substs !exit_subst sub i.next;
+ exit_subst := merge_substs !exit_subst sub i;
(i, None)
| Itrywith(body, handler) ->
let (new_body, sub_body) = rename body sub in