X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir1opt.lisp;h=d1d9e68360b8abad9a2f08078c08231878200666;hb=395c461b58f0cd484c21913c1e075593c206b5c1;hp=a5a8969ffac0b6a798a5a05c0e6b569f3e05680e;hpb=5919ecc5fee77630855da6aeeabdc7d8cc4f2762;p=sbcl.git diff --git a/src/compiler/ir1opt.lisp b/src/compiler/ir1opt.lisp index a5a8969..d1d9e68 100644 --- a/src/compiler/ir1opt.lisp +++ b/src/compiler/ir1opt.lisp @@ -879,9 +879,9 @@ 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) @@ -892,7 +892,8 @@ (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