(bug "full call to ~S" fname)))
(when (consp fname)
- (destructuring-bind (setf stem) fname
- (aver (eq setf 'setf))
- (setf (gethash stem *setf-assumed-fboundp*) t)))))
+ (destructuring-bind (setfoid &rest stem) fname
+ (aver (member setfoid
+ '(setf sb!pcl::class-predicate sb!pcl::slot-accessor)))
+ (when (eq setfoid 'setf)
+ (setf (gethash (car stem) *setf-assumed-fboundp*) t))))))
;;; If the call is in a tail recursive position and the return
;;; convention is standard, then do a tail full call. If one or fewer
(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