[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