X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fseqtran.lisp;h=ed8cae706b9093cd5664f50bcbcb29a20fe07a75;hb=f3f677703e37f5a335b3be7fa64f7748ad969517;hp=eb0547cf6ecc72ca20b1b6b6bec1068fa738689a;hpb=4dc4761909992ceb346d003f3fb19e5c837ee985;p=sbcl.git diff --git a/src/compiler/seqtran.lisp b/src/compiler/seqtran.lisp index eb0547c..ed8cae7 100644 --- a/src/compiler/seqtran.lisp +++ b/src/compiler/seqtran.lisp @@ -683,6 +683,10 @@ (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.