X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fxref.lisp;h=ac1dad8d9ed8d07caf2ad229e938c5d2e10fc057;hb=7c406887c08477181e869b1b98142d99b52990ac;hp=48d2a5497511bf89e134562b528f66b87bf4d90a;hpb=65dc8d30b1f8389faa549af10e72b9e677bec5d3;p=sbcl.git diff --git a/src/compiler/xref.lisp b/src/compiler/xref.lisp index 48d2a54..ac1dad8 100644 --- a/src/compiler/xref.lisp +++ b/src/compiler/xref.lisp @@ -25,10 +25,9 @@ ;; Note that this code can get executed several times ;; for the same block, if the functional is referenced ;; from multiple XEPs. - (loop for ctran = start then (node-next node) + (loop for ctran = start then (node-next (ctran-next ctran)) while ctran - for node = (ctran-next ctran) - do (record-node-xrefs node functional)) + do (record-node-xrefs (ctran-next ctran) functional)) ;; Properly record the deferred macroexpansion information ;; that's been stored in the block. (dolist (xref-data (block-macroexpands block)) @@ -118,8 +117,7 @@ (record-xref :calls name context node nil))))) ;; Reading a constant (constant - (let* ((name (constant-%source-name leaf))) - (record-xref :references name context node nil)))))) + (record-xref :references (ref-%source-name node) context node nil))))) ;; Setting a special variable (cset (let* ((var (set-var node))) @@ -150,15 +148,16 @@ (list (every #'internal-name-p what)) (symbol - (member (symbol-package what) - (load-time-value (list* (find-package "COMMON-LISP") - (find-package "KEYWORD") - (remove-if-not - (lambda (package) - (= (mismatch "SB!" - (package-name package)) - 3)) - (list-all-packages)))))) + (or (eq '.anonymous. what) + (member (symbol-package what) + (load-time-value (list* (find-package "COMMON-LISP") + (find-package "KEYWORD") + (remove-if-not + (lambda (package) + (= (mismatch "SB!" + (package-name package)) + 3)) + (list-all-packages))))))) (t t))) (defun record-xref (kind what context node path)