X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Farray-tran.lisp;h=ab21afabe6e357034e3df6a1fb2deb16fcd89263;hb=d492ebb264e900df38f21c904f5d2f5c46c8b8da;hp=abf8141f1de063f882b9678784de7ed60c8d94e9;hpb=3a4229d4a91f04da79dfc7366433682f8c979f0a;p=sbcl.git diff --git a/src/compiler/array-tran.lisp b/src/compiler/array-tran.lisp index abf8141..ab21afa 100644 --- a/src/compiler/array-tran.lisp +++ b/src/compiler/array-tran.lisp @@ -293,8 +293,7 @@ (give-up-ir1-transform "cannot open-code creation of ~S" result-type-spec)) #-sb-xc-host - (unless (csubtypep (ctype-of (sb!vm:saetp-initial-element-default saetp)) - eltype-type) + (unless (ctypep (sb!vm:saetp-initial-element-default saetp) eltype-type) ;; This situation arises e.g. in (MAKE-ARRAY 4 :ELEMENT-TYPE ;; '(INTEGER 1 5)) ANSI's definition of MAKE-ARRAY says "If ;; INITIAL-ELEMENT is not supplied, the consequences of later @@ -523,7 +522,7 @@ ((:maybe) (give-up-ir1-transform "The array type is ambiguous; must call ~ - ARRAY-HAS-FILL-POINTER-P at runtime."))))))) + ARRAY-HAS-FILL-POINTER-P at runtime."))))))) ;;; Primitive used to verify indices into arrays. If we can tell at ;;; compile-time or we are generating unsafe code, don't bother with @@ -678,7 +677,7 @@ ;; given a set of indices. We wrap each index with a call ;; to %CHECK-BOUND to ensure that everything works out ;; correctly. We can wrap all the interior arithmetic with - ;; TRULY-THE INDEX because we know the the resultant + ;; TRULY-THE INDEX because we know the resultant ;; row-major index must be an index. (with-row-major-index ((array indices index &optional new-value) &rest body) @@ -758,7 +757,7 @@ (bit-vector bit-vector &optional null) * :policy (>= speed space)) `(,',fun bit-array-1 bit-array-2 - (make-array (length bit-array-1) :element-type 'bit))) + (make-array (array-dimension bit-array-1 0) :element-type 'bit))) ;; If result is T, make it the first arg. (deftransform ,fun ((bit-array-1 bit-array-2 result-bit-array) (bit-vector bit-vector (eql t)) *) @@ -779,7 +778,7 @@ (bit-vector &optional null) * :policy (>= speed space)) '(bit-not bit-array-1 - (make-array (length bit-array-1) :element-type 'bit))) + (make-array (array-dimension bit-array-1 0) :element-type 'bit))) (deftransform bit-not ((bit-array-1 result-bit-array) (bit-vector (eql t))) '(bit-not bit-array-1 bit-array-1))