Skip to content
Snippets Groups Projects
Commit 02219274 authored by wlott's avatar wlott
Browse files

Changed function-info-or-lose and %defknown to change the info environment

in *target-backend* if there is one.
parent 8814e5de
No related branches found
No related tags found
No related merge requests found
......@@ -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)))))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment