From bdb214be430e948aaedcd528944e1d6e8ebd2c85 Mon Sep 17 00:00:00 2001 From: gerd <gerd> Date: Tue, 3 Jun 2003 12:22:37 +0000 Subject: [PATCH] * src/compiler/envanal.lisp (find-non-local-exits): Deal with exits from deleted lambdas when *converting-for-interpreter*. --- compiler/envanal.lisp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/compiler/envanal.lisp b/compiler/envanal.lisp index 8bedc9124..ebdc818ca 100644 --- a/compiler/envanal.lisp +++ b/compiler/envanal.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/envanal.lisp,v 1.28 2002/02/06 23:20:46 pmai Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/envanal.lisp,v 1.29 2003/06/03 12:22:37 gerd Exp $") ;;; ;;; ********************************************************************** ;;; @@ -291,11 +291,13 @@ (dolist (entry (lambda-entries lambda)) (dolist (exit (entry-exits entry)) (let ((target-env (node-environment entry))) - (if (eq (node-environment exit) target-env) - (unless *converting-for-interpreter* - (maybe-delete-exit exit)) - (note-non-local-exit target-env exit)))))) - + (unless (and *converting-for-interpreter* + (eq (lambda-kind (node-home-lambda exit)) + :deleted)) + (if (eq (node-environment exit) target-env) + (unless *converting-for-interpreter* + (maybe-delete-exit exit)) + (note-non-local-exit target-env exit))))))) (undefined-value)) -- GitLab