Reduced test case. Using GCL 2.7.0 in ANSI mode.
(load (compile "bug.lisp"))
;;; bug.lisp contents follow:
(in-package :cl-user)
(defun bar (x)
(values x x))
(declaim (notinline bar))
(defun foo (x)
(multiple-value-bind (a b) (bar x)
(list a b)))
(format t "~&~S~%" (foo 1)) ;==> (1 NIL) instead of (1 1)
(defun baz (x)
(values x x))
(declaim (inline baz))
(defun quux (x)
(multiple-value-bind (a b) (baz x)
(list a b)))
(format t "~&~S~%" (quux 1)) ;==> (1 1) as expected
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
When you've seen one nuclear war, you've seen them all.
_______________________________________________
Gcl-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gcl-devel