Commit 70ea2f8c authored by Alexey Dejneka's avatar Alexey Dejneka
Browse files

0.8.5.37:

        * Fix PFD bug MISC.165: unify treating of TAIL-CALLS in
          LET-convertion.
parent a83191ce
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -953,11 +953,13 @@
;;; new references to it.
(defun let-convert (fun call)
  (declare (type clambda fun) (type basic-combination call))
  (let ((next-block (if (node-tail-p call)
  (let* ((next-block (insert-let-body fun call))
         (next-block (if (node-tail-p call)
                         nil
			(insert-let-body fun call))))
                         next-block)))
    (move-return-stuff fun call next-block)
    (merge-lets fun call)))
    (merge-lets fun call)
    (setf (node-tail-p call) nil)))

;;; Reoptimize all of CALL's args and its result.
(defun reoptimize-call (call)
+22 −0
Original line number Diff line number Diff line
@@ -846,3 +846,25 @@
                             a)))
              0)
             -20343))

;;; MISC.165
(assert (eql (funcall
              (compile
               nil
               '(lambda (a b c)
                 (block b3
                   (flet ((%f15
                              (f15-1 f15-2 f15-3
                                     &optional
                                     (f15-4
                                      (flet ((%f17
                                                 (f17-1 f17-2 f17-3
                                                        &optional (f17-4 185155520) (f17-5 c)
                                                        (f17-6 37))
                                               c))
                                        (%f17 -1046 a 1115306 (%f17 b -146330 422) -337817)))
                                     (f15-5 a) (f15-6 -40))
                            (return-from b3 -16)))
                     (multiple-value-call #'%f15 (values -519354 a 121 c -1905))))))
              0 0 -5)
             -16))
+1 −1
Original line number Diff line number Diff line
@@ -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.5.36"
"0.8.5.37"