0.8.0.27:
authorAlexey Dejneka <adejneka@comail.ru>
Tue, 3 Jun 2003 12:29:16 +0000 (12:29 +0000)
committerAlexey Dejneka <adejneka@comail.ru>
Tue, 3 Jun 2003 12:29:16 +0000 (12:29 +0000)
        Fixed bug 252: use UNLINK-NODE to delete returns in merging
        toplevel lambdas.

BUGS
src/compiler/dfo.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index d76b41b..c8dd0f5 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1180,6 +1180,18 @@ WORKAROUND:
   does not cause a warning. (BTW: old SBCL issued a warning, but for a
   function, which was never called!)
 
+252:
+  (reported by Eric Marsden on sbcl-devel 2003-06-02)
+  Block-compiling (using the :block-compile argument to COMPILE-FILE)
+  causes an internal error on a simple file containing
+
+    (defun foo (x)
+      (list x))
+    (defun bar (x)
+      (+ x (foo x)))
+
+  (fixed in 0.8.0.27)
+
 DEFUNCT CATEGORIES OF BUGS
   IR1-#:
     These labels were used for bugs related to the old IR1 interpreter.
index c03fa36..7739e60 100644 (file)
     ;; is always a preceding REF NIL node in top level lambdas.
     (let ((return (lambda-return lambda)))
       (when return
-       (let ((return-block (node-block return))
-             (result (return-result return)))
-         (setf (block-last return-block) (continuation-use result))
-         (flush-dest result)
-         (delete-continuation result)
-         (link-blocks return-block result-return-block))))))
+       (link-blocks (node-block return) result-return-block)
+        (flush-dest (return-result return))
+        (unlink-node return)))))
 
 ;;; Given a non-empty list of top level LAMBDAs, smash them into a
 ;;; top level lambda and component, returning these as values. We use
index 0282a4a..c947453 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.0.26"
+"0.8.0.27"