diff --git a/compiler/ir1tran.lisp b/compiler/ir1tran.lisp index 694d0f04a5a11730c39b1e1fe237d501ded271e4..b2ed3e85c802d4cf6054c7d7d0432c07707113ad 100644 --- a/compiler/ir1tran.lisp +++ b/compiler/ir1tran.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/ir1tran.lisp,v 1.147 2003/04/21 21:00:04 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1tran.lisp,v 1.148 2003/04/22 15:48:40 gerd Exp $") ;;; ;;; ********************************************************************** ;;; @@ -576,7 +576,10 @@ ((symbolp fun) (let ((lexical-def (lexenv-find-function fun))) (typecase lexical-def - (null (ir1-convert-global-functoid start cont form)) + (null + (when (eq fun 'declare) + (compiler-error "Misplaced declaration.")) + (ir1-convert-global-functoid start cont form)) (functional (ir1-convert-local-combination start cont form lexical-def)) (global-var @@ -2356,16 +2359,6 @@ (ir1-convert-progn-body start cont body)))) -;;; Not really a special form, but... -;;; -;;; emarsden2003-04-09 should get rid of this, since it causes -;;; (special-operator-p 'declare) to be true -(def-ir1-translator declare ((&rest stuff) start cont) - (declare (ignore stuff)) - start cont; Ignore hack - (compiler-error "Misplaced declaration.")) - - ;;; COMPILER-OPTION-BIND ;;; (def-ir1-translator compiler-option-bind ((bindings &body body) start cont) diff --git a/general-info/release-19a.txt b/general-info/release-19a.txt index 14a41645ab619f16d6eba4bead401d0221ef53c6..6d3e4249bd602d08514e97bf14f9ae37b022d517 100644 --- a/general-info/release-19a.txt +++ b/general-info/release-19a.txt @@ -51,10 +51,13 @@ New in this release: with an out-of-bounds index. - Accessing arrays in compiled code with out-of-bounds indices now signals a TYPE-ERROR. + - DECLARE no longer being a special operator. * Numerous bugfixes: - NSET-EXCLUSIVE-OR implemented in terms of SET-EXCLUSIVE-OR because it returned different results than SET-EXCLUSIVE-OR. + - Forms like (MULTIPLE-VALUE-BIND 'LIST) no longer trapping + an internal compiler error when compiled. * Other changes: