0.8.3.75:
authorAlexey Dejneka <adejneka@comail.ru>
Thu, 18 Sep 2003 06:26:57 +0000 (06:26 +0000)
committerAlexey Dejneka <adejneka@comail.ru>
Thu, 18 Sep 2003 06:26:57 +0000 (06:26 +0000)
        * Do not let-convert into a deleted function.

src/compiler/locall.lisp
tests/compiler.impure-cload.lisp
version.lisp-expr

index 4a8ab19..661896a 100644 (file)
                     (eq (basic-combination-fun dest) ref-lvar)
                     (eq (basic-combination-kind dest) :local)
                     (not (block-delete-p (node-block dest)))
+                     (neq (functional-kind (node-home-lambda dest))
+                          :deleted)
                     (cond ((ok-initial-convert-p clambda) t)
                           (t
                            (reoptimize-lvar ref-lvar)
index 194a4c6..4f275bd 100644 (file)
   (LET ((V5 (MIN 31883 (LOGCOUNT A))))
     (IF (/= B V5) (IF (EQL 122911784 V5) -43765 1487) B)))
 
+;;; let-conversion of a function into deleted one
+(defun #:foo (a c)
+  (declare (type (integer -883 1566) a)
+           (type (integer -1 0) c)
+           (optimize (speed 3) (safety 1) (debug 1)))
+  (flet ((%f8 () c))
+    (flet ((%f5 ()
+             (if (< c a)
+                 (return-from %f5 (if (= -4857 a) (%f8) (%f8)))
+                 c)))
+      (if (<= 11 c) (%f5) c))))
+
 \f
 (sb-ext:quit :unix-status 104)
index 169ad62..a860340 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.3.74"
+"0.8.3.75"