X-Git-Url: http://git.boinkor.net/gitweb/sbcl.git/blobdiff_plain/0e1933f873c9fb073e3fc07e73c5401277bd0681..5dd7646f587fe7f85509870d66b7082a93b19adc:/tests/compiler.pure.lisp diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index 8be6ff1..118fce2 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -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)))))))