diff --git a/compiler/ir1tran.lisp b/compiler/ir1tran.lisp index a36e4a047b9c254227dda8a514924d7f6ee40785..5502c4beecb9daffdd3cd68053ed6e283ff903a7 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