0.8aplha.0.5:
authorAlexey Dejneka <adejneka@comail.ru>
Sat, 3 May 2003 07:05:24 +0000 (07:05 +0000)
committerAlexey Dejneka <adejneka@comail.ru>
Sat, 3 May 2003 07:05:24 +0000 (07:05 +0000)
        Fixed bug reported by WHN 2003-05-02:
        * CHANGE-REF-LEAF incompatibly changes REF derived type in
          BASIC-COMBINATION-FUN.

src/compiler/ir1opt.lisp
src/compiler/ir1util.lisp
version.lisp-expr

index d91e2ca..d585c20 100644 (file)
     (when (and (combination-p use)
               (eq (continuation-fun-name (combination-fun use))
                   'list))
+
+      ;; FIXME: VALUES might not satisfy an assertion on NODE-CONT.
       (change-ref-leaf (continuation-use (combination-fun node))
                       (find-free-fun 'values "in a strange place"))
       (setf (combination-kind node) :full)
index b331c40..690cc2a 100644 (file)
     (setf (ref-leaf ref) leaf)
     (setf (leaf-ever-used leaf) t)
     (let ((ltype (leaf-type leaf)))
-      (if (fun-type-p ltype)
+      (if (let* ((cont (node-cont ref))
+                 (dest (continuation-dest cont)))
+            (and (basic-combination-p dest)
+                 (eq cont (basic-combination-fun dest))))
          (setf (node-derived-type ref) ltype)
          (derive-node-type ref ltype)))
     (reoptimize-continuation (node-cont ref)))
index b9a1adb..fc63d9f 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.8alpha.0.4"
+"0.8alpha.0.5"