From 41d90bb4048e7de615e6a502006de2c2602fdea2 Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Wed, 9 Jan 1991 14:29:12 +0000
Subject: [PATCH] Changed PROCLAIM IR1 convert to drop unknown declarations on
 the floor, rather than passing them through to %PROCLAIM, which would then
 flame out with a fatal error.

---
 compiler/ir1tran.lisp | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/compiler/ir1tran.lisp b/compiler/ir1tran.lisp
index a36e4a047..5502c4bee 100644
--- a/compiler/ir1tran.lisp
+++ b/compiler/ir1tran.lisp
@@ -2443,7 +2443,8 @@
 	(compiler-error "Malformed PROCLAIM spec: ~S." form))
        
       (let ((name (first form))
-	    (args (rest form)))
+	    (args (rest form))
+	    (ignore nil))
 	(case (first form)
 	  (special
 	   (dolist (old (get-old-vars (rest form)))
@@ -2477,12 +2478,15 @@
 	  (t
 	   (cond ((member name type-specifier-symbols)
 		  (process-type-proclamation name args))
-		 ((info declaration recognized name))
+		 ((info declaration recognized name)
+		  (setq ignore t))
 		 (t
+		  (setq ignore t)
 		  (compiler-warning "Unrecognized proclamation: ~S." form))))))
 
-      (funcall #'%proclaim form)))
-  (ir1-convert start cont `(%proclaim ,what)))
+      (unless ignore
+	(funcall #'%proclaim form)
+	(ir1-convert start cont `(%proclaim ,what))))))
 
 
 ;;; %Compiler-Defstruct IR1 Convert  --  Internal
-- 
GitLab