X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fnode.lisp;h=afcb90de577f59d1a39d99e01662768178ebda33;hb=45bc305be4e269d2e1a477c8e0ae9a64df1ccd1c;hp=37af448b3bc0d0f10c6e77cd23b0e9d8e61835f6;hpb=6075b05401346ac20ec9a647fe192a2a959f3882;p=sbcl.git diff --git a/src/compiler/node.lisp b/src/compiler/node.lisp index 37af448..afcb90d 100644 --- a/src/compiler/node.lisp +++ b/src/compiler/node.lisp @@ -665,12 +665,16 @@ (functional-%debug-name leaf))) ;;; The CONSTANT structure is used to represent known constant values. -;;; If NAME is not null, then it is the name of the named constant -;;; which this leaf corresponds to, otherwise this is an anonymous -;;; constant. -(def!struct (constant (:include leaf)) +;;; Since the same constant leaf may be shared between named and anonymous +;;; constants, %SOURCE-NAME is never used. +(def!struct (constant (:constructor make-constant (value + &aux + (type (ctype-of value)) + (%source-name '.anonynous.) + (where-from :defined))) + (:include leaf)) ;; the value of the constant - (value nil :type t)) + (value (missing-arg) :type t)) (defprinter (constant :identity t) value)