From 29ca6a75ddd1ba7e6463b61d17b279db8132292d Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20V=C3=A1zquez?= Date: Mon, 20 May 2013 12:25:00 +0100 Subject: [PATCH] Fix unreachable blocks removing --- experimental/compiler.lisp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/experimental/compiler.lisp b/experimental/compiler.lisp index ed326cb..3a22657 100644 --- a/experimental/compiler.lisp +++ b/experimental/compiler.lisp @@ -750,10 +750,10 @@ ;; one, then break the link between them. So we discard it ;; from the flowgraph. ((eq (block-data block) 'unreachable) - (setf (block-succ block) nil) (dolist (succ (block-succ block)) (when (eq (block-data succ) 'reachable) - (remove block (block-pred succ))))) + (setf (block-pred succ) (remove block (block-pred succ))))) + (setf (block-succ block) nil)) ;; Delete empty blocks ((and (empty-block-p block) (not (boundary-block-p block)) -- 1.7.10.4