[armedbear-cvs] r11830 - trunk/abcl/src/org/armedbear/lisp

Erik Huelsmann ehuelsmann at common-lisp.net
Mon May 4 21:07:23 UTC 2009


Author: ehuelsmann
Date: Mon May  4 17:07:23 2009
New Revision: 11830

Log:
Make free specials visible in p2-locally and p2-m-v-b.

Modified:
   trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp	(original)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp	Mon May  4 17:07:23 2009
@@ -4033,6 +4033,8 @@
     ;; Make the variables visible for the body forms.
     (dolist (variable variables)
       (push variable *visible-variables*))
+    (dolist (variable (block-free-specials block))
+      (push variable *visible-variables*))
     ;; Body.
     (compile-progn-body (cdddr form) target)
     (when bind-special-p
@@ -4419,7 +4421,11 @@
 
 (defun p2-locally (form target representation)
   (with-saved-compiler-policy
-    (let ((body (cdr form)))
+    (let* ((body (cdr form))
+           (*visible-variables* *visible-variables*)
+           (specials (process-special-declarations body)))
+      (dolist (name specials)
+        (push (make-variable :name name :special-p t) *visible-variables*))
       (process-optimization-declarations body)
       (compile-progn-body body target representation))))
 




More information about the armedbear-cvs mailing list