projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.0.78.vector-nil-string.10:
[sbcl.git]
/
src
/
compiler
/
macros.lisp
diff --git
a/src/compiler/macros.lisp
b/src/compiler/macros.lisp
index
1dd4bbc
..
fd533a0
100644
(file)
--- a/
src/compiler/macros.lisp
+++ b/
src/compiler/macros.lisp
@@
-54,7
+54,8
@@
(multiple-value-bind (body decls doc)
(parse-defmacro lambda-list n-form body name "special form"
:environment n-env
(multiple-value-bind (body decls doc)
(parse-defmacro lambda-list n-form body name "special form"
:environment n-env
- :error-fun 'convert-condition-into-compiler-error)
+ :error-fun 'convert-condition-into-compiler-error
+ :wrap-block nil)
`(progn
(declaim (ftype (function (continuation continuation t) (values))
,fn-name))
`(progn
(declaim (ftype (function (continuation continuation t) (values))
,fn-name))
@@
-110,7
+111,8
@@
:error-fun `(lambda (&rest stuff)
(declare (ignore stuff))
(return-from ,name
:error-fun `(lambda (&rest stuff)
(declare (ignore stuff))
(return-from ,name
- (values nil t))))
+ (values nil t)))
+ :wrap-block nil)
`(lambda (,n-form &aux (,n-env *lexenv*))
,@decls
(block ,name
`(lambda (,n-form &aux (,n-env *lexenv*))
,@decls
(block ,name
@@
-616,7
+618,8
@@
(declare (type node ,node-var))
,@body
(when ,(if restart-p
(declare (type node ,node-var))
,@body
(when ,(if restart-p
- `(eq ,node-var (block-last ,n-block))
+ `(or (eq ,node-var (block-last ,n-block))
+ (block-delete-p ,n-block))
`(eq ,cont-var ,n-last-cont))
(return nil))))))
;;; like DO-NODES, only iterating in reverse order
`(eq ,cont-var ,n-last-cont))
(return nil))))))
;;; like DO-NODES, only iterating in reverse order