From: Alexey Dejneka Date: Mon, 13 Sep 2004 15:56:07 +0000 (+0000) Subject: 0.8.14.17: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=e39c00f137e71016e259c667dfe2aa628963b730;p=sbcl.git 0.8.14.17: * Fix MISC.391. --- diff --git a/src/compiler/locall.lisp b/src/compiler/locall.lisp index 107e9ae..e5bbc97 100644 --- a/src/compiler/locall.lisp +++ b/src/compiler/locall.lisp @@ -47,7 +47,8 @@ (declare (type combination call) (type clambda fun)) (loop for arg in (basic-combination-args call) and var in (lambda-vars fun) - when (and (lambda-var-dynamic-extent var) + when (and arg + (lambda-var-dynamic-extent var) (not (lvar-dynamic-extent arg))) collect arg into dx-lvars and do (let ((use (lvar-uses arg))) diff --git a/tests/dynamic-extent.impure.lisp b/tests/dynamic-extent.impure.lisp index 5bdd4ad..33c6186 100644 --- a/tests/dynamic-extent.impure.lisp +++ b/tests/dynamic-extent.impure.lisp @@ -113,4 +113,19 @@ ) -(sb-ext:quit :unix-status 104) \ No newline at end of file +;;; Bugs found by Paul F. Dietz +(assert + (eq + (funcall + (compile + nil + '(lambda (a b) + (declare (optimize (speed 2) (space 0) (safety 0) + (debug 1) (compilation-speed 3))) + (let* ((v5 (cons b b))) + (declare (dynamic-extent v5)) + a))) + 'x 'y) + 'x)) + +(sb-ext:quit :unix-status 104) diff --git a/version.lisp-expr b/version.lisp-expr index 2268647..5cc0acc 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.14.16" +"0.8.14.17"