0.8alpha.0.9:
[sbcl.git] / src / compiler / ir2tran.lisp
index 43b213d..c614cbc 100644 (file)
 (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
                                    (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