X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fcompiler%2Fnode.lisp;h=fb27f290d5dcb33f9b73122b89e8a48bc54d04cb;hb=68664fcaa607ab61bc53bce1e9795622942135a4;hp=37af448b3bc0d0f10c6e77cd23b0e9d8e61835f6;hpb=6075b05401346ac20ec9a647fe192a2a959f3882;p=sbcl.git diff --git a/src/compiler/node.lisp b/src/compiler/node.lisp index 37af448..fb27f29 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 '.anonymous.) + (where-from :defined))) + (:include leaf)) ;; the value of the constant - (value nil :type t)) + (value (missing-arg) :type t)) (defprinter (constant :identity t) value)