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
Gcl-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/gcl-devel

Reply via email to