X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/bb80145308ea388d7c6ed5336c061340e78f66e8..8ce92a8fe2d825830035b39a3dfd60969445e7ea:/src/codegen-proto.lisp diff --git a/src/codegen-proto.lisp b/src/codegen-proto.lisp index 6b1f947..a96c6ff 100644 --- a/src/codegen-proto.lisp +++ b/src/codegen-proto.lisp @@ -334,10 +334,13 @@ During BODY, VAR will be marked in-use; when BODY ends, VAR will be marked available for re-use." - `(let ((,var (temporary-var ,codegen ,type))) - (unwind-protect - (progn ,@body) - (setf (var-in-use-p ,var) nil)))) + (multiple-value-bind (doc decls body) (parse-body body :docp nil) + (declare (ignore doc)) + `(let ((,var (temporary-var ,codegen ,type))) + ,@decls + (unwind-protect + (progn ,@body) + (setf (var-in-use-p ,var) nil))))) ;;;-------------------------------------------------------------------------- ;;; Code generation idioms.