X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir2tran.lisp;h=c614cbcf6333de8c4f66fffa6d9bfc3b5d14d896;hb=df679ed627975948b1cee190f4d79c397588c43e;hp=43b213d073df80de63679a80d711055acc9f24a1;hpb=2217cdb364e8b48c187b085895bb2a5cbdbd9622;p=sbcl.git diff --git a/src/compiler/ir2tran.lisp b/src/compiler/ir2tran.lisp index 43b213d..c614cbc 100644 --- a/src/compiler/ir2tran.lisp +++ b/src/compiler/ir2tran.lisp @@ -1335,8 +1335,7 @@ (def-ir1-translator progv ((vars vals &body body) start cont) (ir1-convert start cont - (let ((bind (gensym "BIND")) - (unbind (gensym "UNBIND"))) + (with-unique-names (bind unbind) (once-only ((n-save-bs '(%primitive current-binding-pointer))) `(unwind-protect (progn @@ -1349,7 +1348,9 @@ (declare (optimize (speed 2) (debug 0))) (cond ((null vars)) ((null vals) (,unbind vars)) - (t (%primitive bind (car vals) (car vars)) + (t (%primitive bind + (car vals) + (car vars)) (,bind (cdr vars) (cdr vals)))))) (,bind ,vars ,vals)) nil