0.9.11.38:
[sbcl.git] / src / compiler / locall.lisp
index ceff522..8d34d60 100644 (file)
 ;;; do LET conversion here.
 (defun locall-analyze-fun-1 (fun)
   (declare (type functional fun))
-  (let ((refs (leaf-refs fun)))
+  (let ((refs (leaf-refs fun))
+        (local-p t))
     (dolist (ref refs)
       (let* ((lvar (node-lvar ref))
              (dest (when lvar (lvar-dest lvar))))
                  (convert-call-if-possible ref dest)
 
                  (unless (eq (basic-combination-kind dest) :local)
-                   (reference-entry-point ref)))
+                   (reference-entry-point ref)
+                   (setq local-p nil)))
                 (t
-                 (reference-entry-point ref)))))))
+                 (reference-entry-point ref)
+                 (setq local-p nil))))))
+    (when local-p (note-local-functional fun)))
 
   (values))