X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fearly-setf.lisp;h=3cddab43f5904ec4a489a441072a99400f9cfff7;hb=2cfc78cdd55a4641b16e0eb7f277286e520fc959;hp=6533da940c2bf2ca6d6f09478cbc6ea8a10610e3;hpb=e0806c1d8c89f9f1bcbc2f147484170d43f0cbe0;p=sbcl.git diff --git a/src/code/early-setf.lisp b/src/code/early-setf.lisp index 6533da9..3cddab4 100644 --- a/src/code/early-setf.lisp +++ b/src/code/early-setf.lisp @@ -93,7 +93,7 @@ (cond ((sb!xc:constantp x environment) (push x args)) (t - (let ((temp (gensym "TMP"))) + (let ((temp (gensymify x))) (push temp args) (push temp vars) (push x vals))))) @@ -467,6 +467,7 @@ `(,newval) `(let ((,(car stores) (%putf ,get ,ptemp ,newval)) ,@(cdr stores)) + ,def-temp ;; prevent unused style-warning ,set ,newval) `(getf ,get ,ptemp ,@(if default `(,def-temp))))))) @@ -474,24 +475,26 @@ (sb!xc:define-setf-expander get (symbol prop &optional default) (let ((symbol-temp (gensym)) (prop-temp (gensym)) - (def-temp (gensym)) + (def-temp (if default (gensym))) (newval (gensym))) (values `(,symbol-temp ,prop-temp ,@(if default `(,def-temp))) `(,symbol ,prop ,@(if default `(,default))) (list newval) - `(%put ,symbol-temp ,prop-temp ,newval) + `(progn ,def-temp ;; prevent unused style-warning + (%put ,symbol-temp ,prop-temp ,newval)) `(get ,symbol-temp ,prop-temp ,@(if default `(,def-temp)))))) (sb!xc:define-setf-expander gethash (key hashtable &optional default) (let ((key-temp (gensym)) (hashtable-temp (gensym)) - (default-temp (gensym)) + (default-temp (if default (gensym))) (new-value-temp (gensym))) (values `(,key-temp ,hashtable-temp ,@(if default `(,default-temp))) `(,key ,hashtable ,@(if default `(,default))) `(,new-value-temp) - `(%puthash ,key-temp ,hashtable-temp ,new-value-temp) + `(progn ,default-temp ;; prevent unused style-warning + (%puthash ,key-temp ,hashtable-temp ,new-value-temp)) `(gethash ,key-temp ,hashtable-temp ,@(if default `(,default-temp)))))) (sb!xc:define-setf-expander logbitp (index int &environment env)