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