+ (let ((specializer `(unsigned-byte ,(integer-length maxoid))))
+ ;; cross-compilers beware! It would be possible for the
+ ;; upgraded-array-element-type of (UNSIGNED-BYTE 15) to be
+ ;; (SIGNED-BYTE 16), and this is completely valid by
+ ;; ANSI. However, the cross-compiler doesn't know how to dump
+ ;; SIGNED-BYTE arrays, so better make it break now if it ever
+ ;; will:
+ #+sb-xc-host
+ ;; not SB!XC:UPGRADED-ARRAY-ELEMENT-TYPE, because we are
+ ;; worried about whether the host's implementation of arrays.
+ (aver (subtypep (upgraded-array-element-type specializer)
+ 'unsigned-byte))
+ (coerce seq `(simple-array ,specializer (*)))))))