0.9.1.17:
[sbcl.git] / src / compiler / seqtran.lisp
index 5c1874d..ed8cae7 100644 (file)
            (if (null splice)
                (setq list (cdr x))
                (rplacd splice (cdr x))))
-          (T (setq splice x)))))
+          (t (setq splice x)))))
 
 (deftransform fill ((seq item &key (start 0) (end (length seq)))
                    (vector t &key (:start t) (:end index))
 (defun valid-bit-bash-saetp-p (saetp)
   ;; BIT-BASHing isn't allowed on simple vectors that contain pointers
   (and (not (eq t (sb!vm:saetp-specifier saetp)))
+       ;; Disallowing (VECTOR NIL) also means that we won't transform
+       ;; sequence functions into bit-bashing code and we let the
+       ;; generic sequence functions signal errors if necessary.
+       (not (zerop (sb!vm:saetp-n-bits saetp)))
        ;; Due to limitations with the current BIT-BASHing code, we can't
        ;; BIT-BASH reliably on arrays whose element types are larger
        ;; than the word size.