Problem with INLINEd function being conditionally redefined
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
New
|
Undecided
|
Unassigned |
Bug Description
See the three files, test1.lsp, test2.lsp. test3.lsp
Executing
(load (compile-file "test1.lsp"))
(load (compile-file "test2.lsp"))
(load (compile-file "test3.lsp"))
and then calling bar
(bar)
drops SBCL into ldb.
This is a simplification of a problem that came up on #lisp involving Bordeaux threads.
The three files in the attachment:
;;;----
;;; test1.lsp
(declaim (inline foo))
(defun foo (x) x)
;;;----
;;; test2.lsp
(eval-when (:load-toplevel :compile-toplevel :execute)
(unless (fboundp 'foo)
(defun foo (x) (declare (ignore x)) (error "foo!"))))
;;;----
;;; test3.lsp
(defun bar ()
(let ((x 1))
(print (foo x))))
description: | updated |