-(with-test (:name :data-vector-ref-with-offset-neg-index)
- (let ((fun (compile nil
- `(lambda ()
- (let ((table (make-array 7
- :element-type 'fixnum
- :initial-contents '(0 1 2 3 4 5 6))))
- (loop for n from -3 upto 3
- collect (aref table (+ 3 n))))))))
- (assert (equal '(0 1 2 3 4 5 6) (funcall fun)))))
-
-(with-test (:name :aref-bignum-offset-and-index)
- ;; These don't get the data-vector-ref-with-offset vop.
- (let ((fun (compile nil
- `(lambda ()
- (let ((table (make-array 7
- :element-type 'fixnum
- :initial-contents '(0 1 2 3 4 5 6))))
- (loop for n from most-negative-fixnum upto (+ most-negative-fixnum 6)
- collect (aref table (+ #.(1+ most-positive-fixnum) n))))))))
- (assert (equal '(0 1 2 3 4 5 6) (funcall fun))))
- (let ((fun (compile nil
- `(lambda ()
- (let ((table (make-array 7
- :element-type 'fixnum
- :initial-contents '(0 1 2 3 4 5 6))))
- (loop for n from (+ most-positive-fixnum 1) upto (+ most-positive-fixnum 7)
- collect (aref table (- n (+ most-positive-fixnum 1)))))))))
- (assert (equal '(0 1 2 3 4 5 6) (funcall fun)))))
+(with-test (:name :dotimes-non-integer-counter-value)
+ (assert (raises-error? (dotimes (i 8.6)) type-error)))
+
+(with-test (:name :bug-454681)
+ ;; This used to break due to reference to a dead lambda-var during
+ ;; inline expansion.
+ (assert (compile nil
+ `(lambda ()
+ (multiple-value-bind (iterator+977 getter+978)
+ (does-not-exist-but-does-not-matter)
+ (flet ((iterator+976 ()
+ (funcall iterator+977)))
+ (declare (inline iterator+976))
+ (let ((iterator+976 #'iterator+976))
+ (funcall iterator+976))))))))
+
+(with-test (:name :complex-float-local-fun-args)
+ ;; 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)))))))