From 321b7e52fdbd0780e85faa2462889c40db149866 Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Sun, 14 Oct 1990 19:10:05 +0000
Subject: [PATCH] Allow any kind of constants in the interpreter.  Also, put
 back the test for :NOTINLINE when deciding whether to enter in
 *FREE-FUNCTIONS*.

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

diff --git a/compiler/ir1tran.lisp b/compiler/ir1tran.lisp
index 6248dc730..1a0c7e4f5 100644
--- a/compiler/ir1tran.lisp
+++ b/compiler/ir1tran.lisp
@@ -1595,11 +1595,12 @@
 ;;; Reference-Constant  --  Internal
 ;;;
 ;;;    Generate a reference to a manifest constant, creating a new leaf if
-;;; necessary.
+;;; necessary.  We disallow odd type constants, except in the interpreter.
 ;;;
 (defun reference-constant (start cont value)
   (declare (type continuation start cont))
-  (unless (typep value '(or list number array symbol character structure))
+  (unless (or *converting-for-interpreter*
+	      (typep value '(or list number array symbol character structure)))
     (compiler-error "~S constants not supported." (type-of value)))
   (let* ((leaf (find-constant value))
 	 (res (make-ref (leaf-type leaf) leaf nil)))
@@ -3060,6 +3061,7 @@
 	  (info (info function info name)))
       (setf (leaf-name fun) name)
       (cond ((and (in-null-environment t)
+		  (not (eq (info function inlinep name) :notinline))
 		  (or (not info)
 		      (and (null (function-info-transforms info))
 			   (null (function-info-templates info))
-- 
GitLab