1.0.24.42: fix bug 235a
[sbcl.git] / src / compiler / ir1opt.lisp
index a5a8969..d1d9e68 100644 (file)
                             leaf
                             inlinep
                             (info :function :info name))))
-                 ;; allow backward references to this function from
-                 ;; following top level forms
-                 (setf (defined-fun-functional leaf) res)
+                 ;; Allow backward references to this function from following
+                 ;; forms. (Reused only if policy matches.)
+                 (push res (defined-fun-functionals leaf))
                  (change-ref-leaf ref res))))
         (let ((fun (defined-fun-functional leaf)))
           (if (or (not fun)
                   (with-ir1-environment-from-node call
                     (frob)
                     (locall-analyze-component *current-component*)))
-              ;; If we've already converted, change ref to the converted functional.
+              ;; If we've already converted, change ref to the converted
+              ;; functional.
               (change-ref-leaf ref fun))))
       (values (ref-leaf ref) nil))
      (t