From: Alexey Dejneka Date: Sun, 14 Sep 2003 05:02:45 +0000 (+0000) Subject: 0.8.3.59: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=94cc1963322581d9e4b6bbd96c399a0507c601be;p=sbcl.git 0.8.3.59: * Fixed compier failure reported by Paul Dietz to sbcl-devel in <3F630474.6070301@dls.net>. "APD, continuations do not represent control transfers, is it so hard to remember?!" --- diff --git a/src/compiler/ir1opt.lisp b/src/compiler/ir1opt.lisp index 2bf6ecf..7a57b26 100644 --- a/src/compiler/ir1opt.lisp +++ b/src/compiler/ir1opt.lisp @@ -1809,7 +1809,8 @@ (delete-continuation-use use) (add-continuation-use use cont) (unlink-blocks (node-block use) (node-block cast)) - (link-blocks (node-block use) (continuation-block cont)) + (link-blocks (node-block use) + (first (block-succ (node-block cast)))) (when (and (return-p dest) (basic-combination-p use) (eq (basic-combination-kind use) :local)) diff --git a/tests/compiler.pure-cload.lisp b/tests/compiler.pure-cload.lisp index a29eb99..9fe1951 100644 --- a/tests/compiler.pure-cload.lisp +++ b/tests/compiler.pure-cload.lisp @@ -69,6 +69,20 @@ (assert (equal (foo '(1 2 #\a 3)) '((1) (2)))) (assert (equal (foo '(1 2 x 3)) 'x))) +;;; compiler failure found by Paul Dietz' randomized tortuter +(defun #:foo (a b c d) + (declare (type (integer 240 100434465) a) + (optimize (speed 3) (safety 1) (debug 1))) + (logxor + (if (ldb-test (byte 27 4) d) + -1 + (max 55546856 -431)) + (logorc2 + (if (>= 0 b) + (if (> b c) (logandc2 c d) (if (> d 224002) 0 d)) + (signum (logior c b))) + (logior a -1)))) + ;;; bug 282 ;;; ;;; Verify type checking policy in full calls: the callee is supposed diff --git a/version.lisp-expr b/version.lisp-expr index c9ac1cd..5ce9d88 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.3.58" +"0.8.3.59"