From a25dfa49ac379ad6858a29453ffc53bf07e0889c Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Tue, 27 Dec 2011 16:59:09 +0100 Subject: [PATCH] Change assignements in COMPILE so that the function does not violate the type declaration of its argument. --- src/cmp/cmpmain.lsp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/cmp/cmpmain.lsp b/src/cmp/cmpmain.lsp index 2cec69c07..8bec1a4a2 100755 --- a/src/cmp/cmpmain.lsp +++ b/src/cmp/cmpmain.lsp @@ -797,23 +797,25 @@ after compilation." (cmp-delete-file h-pathname) (cmp-delete-file o-pathname) (mapc 'cmp-delete-file tmp-names) + (cond ((probe-file so-pathname) (load so-pathname :verbose nil) - (cmp-delete-file so-pathname) - (setf name (or name (symbol-value 'GAZONK))) - ;; By unsetting GAZONK we avoid spurious references to the - ;; loaded code. - (set 'GAZONK nil) - (si::gc t) - (values name nil nil)) + (cmp-delete-file so-pathname)) (t + (setf name nil) + (set 'GAZONK nil) (cmperr "The C compiler failed to compile the intermediate code for ~s." name))) ) ; with-compiler-env (cmp-delete-file c-pathname) (cmp-delete-file h-pathname) (cmp-delete-file so-pathname) (mapc 'cmp-delete-file tmp-names) - (compiler-output-values name compiler-conditions))) + (let ((output (or name (symbol-value 'GAZONK)))) + ;; By unsetting GAZONK we avoid spurious references to the + ;; loaded code. + (set 'GAZONK nil) + (si::gc t) + (compiler-output-values output compiler-conditions)))) (defun disassemble (thing &key (h-file nil) (data-file nil) &aux def disassembled-form