From: David Vázquez Date: Mon, 20 May 2013 11:25:00 +0000 (+0100) Subject: Fix unreachable blocks removing X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=29ca6a75ddd1ba7e6463b61d17b279db8132292d;p=jscl.git Fix unreachable blocks removing --- 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))