From: Alexey Dejneka Date: Tue, 3 Jun 2003 12:29:16 +0000 (+0000) Subject: 0.8.0.27: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=010220a2273d434b4fa60546a8d10bdc25daf9e8;p=sbcl.git 0.8.0.27: Fixed bug 252: use UNLINK-NODE to delete returns in merging toplevel lambdas. --- diff --git a/BUGS b/BUGS index d76b41b..c8dd0f5 100644 --- 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. diff --git a/src/compiler/dfo.lisp b/src/compiler/dfo.lisp index c03fa36..7739e60 100644 --- a/src/compiler/dfo.lisp +++ b/src/compiler/dfo.lisp @@ -488,12 +488,9 @@ ;; 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 diff --git a/version.lisp-expr b/version.lisp-expr index 0282a4a..c947453 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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"