Skip to content
Snippets Groups Projects
Commit 8b367c9d authored by ram's avatar ram
Browse files

In the NODE-ENDS-BLOCK cleanup computation, we should associate the cleanup

with the block holding the mess-up node, rather than the cleanup-start
continuation.
parent 77590a65
No related branches found
No related tags found
No related merge requests found
...@@ -415,21 +415,23 @@ ...@@ -415,21 +415,23 @@
(setf (continuation-block last-cont) new-block))) (setf (continuation-block last-cont) new-block)))
(setf (continuation-block cont) new-block)) (setf (continuation-block cont) new-block))
(do ((cup (find-enclosing-cleanup cleanup) (let ((start-cleanup (block-start-cleanup block)))
(find-enclosing-cleanup (cleanup-enclosing cup)))) (do ((cup (find-enclosing-cleanup cleanup)
((null cup)) (find-enclosing-cleanup (cleanup-enclosing cup))))
(when (eq (continuation-block (cleanup-start cup)) new-block) ((null cup))
(do ((cup (find-enclosing-cleanup (cleanup-enclosing cup)) (when (eq (node-block (continuation-use (cleanup-start cup)))
(find-enclosing-cleanup (cleanup-enclosing cup)))) new-block)
((null cup) (do ((cup (find-enclosing-cleanup (cleanup-enclosing cup))
(let ((start-cleanup (block-start-cleanup block))) (find-enclosing-cleanup (cleanup-enclosing cup))))
((null cup)
(setf (block-end-cleanup block) start-cleanup) (setf (block-end-cleanup block) start-cleanup)
(setf (block-start-cleanup new-block) start-cleanup))) (setf (block-start-cleanup new-block) start-cleanup))
(unless (eq (continuation-block (cleanup-start cup)) new-block) (let ((cb (node-block (continuation-use (cleanup-start cup)))))
(setf (block-end-cleanup block) cup) (unless (eq cb new-block)
(setf (block-start-cleanup new-block) cup) (setf (block-end-cleanup block) cup)
(return))) (setf (block-start-cleanup new-block) cup)
(return))) (return))))
(return))))
(setf (block-type-asserted block) t) (setf (block-type-asserted block) t)
(setf (block-test-modified block) t)))) (setf (block-test-modified block) t))))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment