From 02219274480d27347ff733a31b4b041525d03e9e Mon Sep 17 00:00:00 2001
From: wlott <wlott>
Date: Tue, 13 Nov 1990 10:17:59 +0000
Subject: [PATCH] Changed function-info-or-lose and %defknown to change the
 info environment in *target-backend* if there is one.

---
 compiler/knownfun.lisp | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/compiler/knownfun.lisp b/compiler/knownfun.lisp
index 5e3e23d69..8399e32be 100644
--- a/compiler/knownfun.lisp
+++ b/compiler/knownfun.lisp
@@ -146,10 +146,13 @@
 (proclaim '(function %defknown (list list attributes &key (derive-type function)
 				     (optimizer function))))
 (defun %defknown (names type attributes &key derive-type optimizer)
+  (declare (ignore derive-type))
   (let ((ctype (specifier-type type))
 	(info (make-function-info :attributes attributes
 ;				  :derive-type derive-type  Until database is fixed...
-				  :optimizer optimizer)))
+				  :optimizer optimizer))
+	(*info-environment* (or (backend-info-environment *target-backend*)
+				*info-environment*)))
     (dolist (name names)
       (setf (info function type name) ctype)
       (setf (info function where-from name) :declared)
@@ -167,6 +170,8 @@
 ;;;
 (proclaim '(function function-info-or-lose (t) function-info))
 (defun function-info-or-lose (name)
-  (let ((old (info function info name)))
-    (unless old (error "~S is not a known function." name))
-    (setf (info function info name) (copy-function-info old))))
+  (let ((*info-environment* (or (backend-info-environment *target-backend*)
+				*info-environment*)))
+    (let ((old (info function info name)))
+      (unless old (error "~S is not a known function." name))
+      (setf (info function info name) (copy-function-info old)))))
-- 
GitLab