0.8.10.5:
[sbcl.git] / src / compiler / ir1opt.lisp
index bfad3a0..988348d 100644 (file)
               (not (eq (block-home-lambda block)
                        (block-home-lambda next)))
               ;; Stack analysis phase wants ENTRY to start a block.
-              (entry-p (block-start-node next)))
+              (entry-p (block-start-node next))
+              (let ((last (block-last block)))
+                (and (valued-node-p last)
+                     (awhen (node-lvar last)
+                       (consp (lvar-uses it))))))
              nil)
             (t
              (join-blocks block next)
           ;; FIXME: Do it in one step.
           (filter-lvar
            value
-           `(multiple-value-call #'list 'dummy))
+           (if (cast-single-value-p cast)
+               `(list 'dummy)
+               `(multiple-value-call #'list 'dummy)))
           (filter-lvar
            (cast-value cast)
            ;; FIXME: Derived type.