Commit 9eab32ea authored by rtoy's avatar rtoy
Browse files

This causes an error:

(macrolet ((%x () t))
    (declare (optimize))
    (declare (notinline identity)))

Because the macrolet IR1 translator puts a list onto the FVARS
arg in PROCESS-INLINE-DECLARATION, which is not a LEAF.

This patch works around this by checking to see if the element of
FVARS is a LEAF before getting the LEAF-NAME.

There is probably a better solution.
parent e8e09d82
Loading
Loading
Loading
Loading
+9 −2
Changes for compiler/ir1tran.lisp: 9 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -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.169 2004/04/19 22:10:13 rtoy Exp $")
  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1tran.lisp,v 1.170 2004/04/28 17:58:08 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
@@ -1232,7 +1232,14 @@
  (let ((sense (cdr (assoc (first spec) inlinep-translations :test #'eq)))
	(new-fenv ()))
    (dolist (name (rest spec))
      (let ((fvar (find name fvars :key #'leaf-name :test #'function-name-eqv-p)))
      (let ((fvar (find name fvars
			:key #'(lambda (x)
				 ;; FVARS doesn't always contain a
				 ;; LEAF.  Sometimes it comes from a
				 ;; macrolet.
				 (and (leaf-p x)
				      (leaf-name x)))
			:test #'function-name-eqv-p)))
	(if fvar
	    (setf (functional-inlinep fvar) sense)
	    (let ((found