diff --git a/compiler/debug-dump.lisp b/compiler/debug-dump.lisp index 9db4b595de1c96a1717dafde2a7942bded2a829d..d0ccbf8231ee3328fc39ab2cd3fb5b08e4620fe6 100644 --- a/compiler/debug-dump.lisp +++ b/compiler/debug-dump.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/debug-dump.lisp,v 1.44 2003/02/16 19:05:19 emarsden Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/debug-dump.lisp,v 1.45 2003/10/06 12:39:58 gerd Exp $") ;;; ;;; ********************************************************************** ;;; @@ -379,6 +379,16 @@ (kind (and tn (tn-kind tn))) (flags 0)) (declare (type index flags)) + ;; + ;; FIXME: Dead code elimination sometimes leaves spurious + ;; references to unused lambda-vars. Unused vars are not packed, + ;; and so have a tn but a null tn-offset. Some of these cases + ;; have been fixed, but not all of them, and since it's not sure + ;; if/when all of them will be fixed, add a hack for these cases. + ;; -- gerd 2003-10-06 + (when (and tn (null (tn-offset tn))) + (setq tn nil)) + (cond (minimal (setq flags (logior flags compiled-debug-variable-minimal-p)) (unless tn diff --git a/compiler/ir1opt.lisp b/compiler/ir1opt.lisp index 2d96853c4b90af16e16f31288b893b58815b6e5b..c82933a09c9d8750658189bb99fe1aff786d3136 100644 --- a/compiler/ir1opt.lisp +++ b/compiler/ir1opt.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1opt.lisp,v 1.78 2003/10/05 12:34:35 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1opt.lisp,v 1.79 2003/10/06 12:39:58 gerd Exp $") ;;; ;;; ********************************************************************** ;;; @@ -744,6 +744,8 @@ (when (and (basic-combination-p use) (eq (basic-combination-kind use) :local)) (merges use)))) + (when (null (continuation-dest cont)) + (flush-dest value)) (substitute-continuation-uses cont value) (dolist (merge (merges)) (merge-tail-sets merge))))))))