Update of /cvsroot/sbcl/sbcl/tests
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv26559/tests
Modified Files:
compiler.pure.lisp
Log Message:
1.0.42.22: x86-64: Add test case for unboxed complex float arguments.
* This has been broken since 1.0.27.14.
Index: compiler.pure.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/tests/compiler.pure.lisp,v
retrieving revision 1.230
retrieving revision 1.231
diff -u -d -r1.230 -r1.231
--- compiler.pure.lisp 1 Sep 2010 14:42:09 -0000 1.230
+++ compiler.pure.lisp 2 Sep 2010 00:34:14 -0000 1.231
@@ -3518,3 +3518,16 @@
(declare (inline iterator+976))
(let ((iterator+976 #'iterator+976))
(funcall iterator+976))))))))
+
+(with-test (:name :complex-float-local-fun-args :fails-on :x86-64)
+ ;; As of 1.0.27.14, the lambda below failed to compile due to the
+ ;; compiler attempting to pass unboxed complex floats to Z and the
+ ;; MOVE-ARG method not expecting the register being used as a
+ ;; temporary frame pointer. Reported by sykopomp in #lispgames,
+ ;; reduced test case provided by _3b`.
+ (compile nil '(lambda (a)
+ (labels ((z (b c)
+ (declare ((complex double-float) b c))
+ (* b (z b c))))
+ (loop for i below 10 do
+ (setf a (z a a)))))))
|