X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fprimtype.lisp;h=d44d79d0a201c22fa4df8fc62deb5cae64ffa4ce;hb=2db3b6b4cb740d5b6512459c223859f747807b09;hp=3e330395c5f1e31e1f29e2e2dc55ecf57f8d62e0;hpb=ce02ab2ecd9c6ae2e570abd8c93ebf3be55bbdad;p=sbcl.git diff --git a/src/compiler/generic/primtype.lisp b/src/compiler/generic/primtype.lisp index 3e33039..d44d79d 100644 --- a/src/compiler/generic/primtype.lisp +++ b/src/compiler/generic/primtype.lisp @@ -18,7 +18,7 @@ (!def-primitive-type t (descriptor-reg)) (/show0 "primtype.lisp 20") -(setf *backend-t-primitive-type* (primitive-type-or-lose 't)) +(setf *backend-t-primitive-type* (primitive-type-or-lose t)) ;;; primitive integer types that fit in registers (/show0 "primtype.lisp 24") @@ -100,6 +100,8 @@ ;;; primitive other-pointer array types (/show0 "primtype.lisp 96") +(!def-primitive-type simple-array-nil (descriptor-reg) + :type (simple-array nil (*))) (!def-primitive-type simple-string (descriptor-reg) :type simple-base-string) (!def-primitive-type simple-bit-vector (descriptor-reg)) @@ -160,7 +162,8 @@ *backend-t-primitive-type*)))) (defvar *simple-array-primitive-types* - '((base-char . simple-string) + '((nil . simple-array-nil) + (base-char . simple-string) (bit . simple-bit-vector) ((unsigned-byte 2) . simple-array-unsigned-byte-2) ((unsigned-byte 4) . simple-array-unsigned-byte-4) @@ -376,13 +379,15 @@ (part-of list)) (t (any)))) - (function-type + (fun-type (exactly function)) (sb!xc:class (if (csubtypep type (specifier-type 'function)) (part-of function) (part-of instance))) (ctype - (any)))))) + (if (csubtypep type (specifier-type 'function)) + (part-of function) + (any))))))) (/show0 "primtype.lisp end of file")