[movitz-cvs] CVS movitz

ffjeld ffjeld at common-lisp.net
Mon Apr 2 20:54:35 UTC 2007


Update of /project/movitz/cvsroot/movitz
In directory clnet:/tmp/cvs-serv29414

Modified Files:
	special-operators-cl.lisp 
Log Message:
For the block special operator, we need to ensure that the body-code
resets the stack-pointer (which it won't, for result-mode
:function). This fixes a hard crash on ansi-test assoc.25.


--- /project/movitz/cvsroot/movitz/special-operators-cl.lisp	2007/03/19 21:09:26	1.51
+++ /project/movitz/cvsroot/movitz/special-operators-cl.lisp	2007/04/02 20:54:34	1.52
@@ -9,7 +9,7 @@
 ;;;; Created at:    Fri Nov 24 16:31:11 2000
 ;;;; Distribution:  See the accompanying file COPYING.
 ;;;;                
-;;;; $Id: special-operators-cl.lisp,v 1.51 2007/03/19 21:09:26 ffjeld Exp $
+;;;; $Id: special-operators-cl.lisp,v 1.52 2007/04/02 20:54:34 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -860,7 +860,9 @@
       (compiler-values-bind (&code block-code &functional-p block-no-side-effects-p)
 	  (compiler-call #'compile-form
 	    :defaults forward
-	    :result-mode block-result-mode
+	    :result-mode (case block-result-mode
+                           (:function :multiple-values) ; must restore stack
+                           (t block-result-mode))
 	    :form `(muerte.cl:progn , at body)
 	    :env block-env)
 	(let ((label-set-name (gensym "block-label-set-"))




More information about the Movitz-cvs mailing list