From: Nikodemus Siivola Date: Tue, 15 Jan 2008 11:59:30 +0000 (+0000) Subject: 1.0.13.35: preserve source- and debug-name in IR1-OPTIMIZE-MV-CALL X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=acc37aadda6d607b7b84031ebc7bc58b07039120;p=sbcl.git 1.0.13.35: preserve source- and debug-name in IR1-OPTIMIZE-MV-CALL * Copying them from the original leaf before converting the replacement function. --- diff --git a/src/compiler/ir1opt.lisp b/src/compiler/ir1opt.lisp index d2008e7..3a495b4 100644 --- a/src/compiler/ir1opt.lisp +++ b/src/compiler/ir1opt.lisp @@ -1717,10 +1717,13 @@ (with-ir1-environment-from-node node (let* ((dums (make-gensym-list count)) (ignore (gensym)) + (leaf (ref-leaf ref)) (fun (ir1-convert-lambda `(lambda (&optional ,@dums &rest ,ignore) (declare (ignore ,ignore)) - (funcall ,(ref-leaf ref) ,@dums))))) + (%funcall ,leaf ,@dums)) + :source-name (leaf-%source-name leaf) + :debug-name (leaf-%debug-name leaf)))) (change-ref-leaf ref fun) (aver (eq (basic-combination-kind node) :full)) (locall-analyze-component *current-component*) diff --git a/src/compiler/node.lisp b/src/compiler/node.lisp index 7240178..cb88d83 100644 --- a/src/compiler/node.lisp +++ b/src/compiler/node.lisp @@ -660,6 +660,9 @@ ;; it looks as though it's never interesting to get debug names ;; from them, so it's moot. -- WHN) (leaf-source-name leaf))) +(defun leaf-%debug-name (leaf) + (when (functional-p leaf) + (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 diff --git a/version.lisp-expr b/version.lisp-expr index 253e9e6..7017803 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.13.34" +"1.0.13.35"