X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmacros.lisp;h=700f7e4f55f46ff8e1d85c845e9890be9bfb6361;hb=77090f53cbf9c0df39e8b052891b84b2c6812676;hp=9d331bf7ba154810d5260750ac23990de622395b;hpb=fe962ba01d267b92f638c8f0d19be41054219f04;p=sbcl.git diff --git a/src/compiler/macros.lisp b/src/compiler/macros.lisp index 9d331bf..700f7e4 100644 --- a/src/compiler/macros.lisp +++ b/src/compiler/macros.lisp @@ -193,6 +193,7 @@ translations-name attribute-names get-setf-expansion-fun-name) + (declare (ignore attribute-names)) `(define-setf-expander ,test-name (place &rest attributes &environment env) "Automagically generated boolean attribute setter. See @@ -559,17 +560,17 @@ ;;; Iterate over the uses of LVAR, binding NODE to each one ;;; successively. -;;; -;;; XXX Could change it not to replicate the code someday perhaps... (defmacro do-uses ((node-var lvar &optional result) &body body) (with-unique-names (uses) `(let ((,uses (lvar-uses ,lvar))) - (if (listp ,uses) - (dolist (,node-var ,uses ,result) - ,@body) - (block nil - (let ((,node-var ,uses)) - ,@body)))))) + (block nil + (flet ((do-1-use (,node-var) + ,@body)) + (if (listp ,uses) + (dolist (node ,uses) + (do-1-use node)) + (do-1-use ,uses))) + ,result)))) ;;; Iterate over the nodes in BLOCK, binding NODE-VAR to the each node ;;; and LVAR-VAR to the node's LVAR. The only keyword option is