X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fknownfun.lisp;h=4c7ff9c5a00876218b88f26cead7684e333875e3;hb=942e45e3bb73fd55786e4a0ab4590324063c0c89;hp=811b0be935957ecfc1501ffe82032a7fb18d7cc3;hpb=43caa89c20c70fdef77797fe31e6fd09bfcf2527;p=sbcl.git diff --git a/src/compiler/knownfun.lisp b/src/compiler/knownfun.lisp index 811b0be..4c7ff9c 100644 --- a/src/compiler/knownfun.lisp +++ b/src/compiler/knownfun.lisp @@ -61,6 +61,10 @@ ;; in the safe code. If a function MUST signal errors, then it is ;; not unsafely-flushable even if it is movable or foldable. unsafely-flushable + ;; return value is important, and ignoring it is probably a mistake. + ;; Unlike the other attributes, this is used only for style + ;; warnings and has no effect on optimization. + important-result ;; may be moved with impunity. Has no side effects except possibly ;; consing, and is affected only by its arguments. ;; @@ -186,7 +190,8 @@ ;;; and optimizers. (declaim (ftype (function (list list attributes &key (:derive-type (or function null)) - (:optimizer (or function null))) + (:optimizer (or function null)) + (:destroyed-constant-args (or function null))) *) %defknown)) (defun %defknown (names type attributes &key derive-type optimizer destroyed-constant-args)