diff --git a/compiler/array-tran.lisp b/compiler/array-tran.lisp index e99234e6c586ca6783eff90838d598edf495c169..d237b2852818b82f8b83b996cff9685e7fedc407 100644 --- a/compiler/array-tran.lisp +++ b/compiler/array-tran.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/array-tran.lisp,v 1.21 1997/11/01 22:58:26 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/array-tran.lisp,v 1.22 1998/01/09 10:07:48 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -238,13 +238,18 @@ `(truly-the ,spec (allocate-vector ,typecode length ,nwords-form)))) (values - (if (and default-initial-element - (or (null initial-element) - (and (constant-continuation-p initial-element) - (eql (continuation-value initial-element) - default-initial-element)))) - constructor - `(truly-the ,spec (fill ,constructor initial-element))) + (cond ((and default-initial-element + (or (null initial-element) + (and (constant-continuation-p initial-element) + (eql (continuation-value initial-element) + default-initial-element)))) + (unless (csubtypep (ctype-of default-initial-element) + eltype-type) + (compiler-note "Default initial element ~s is not a ~s." + default-initial-element eltype)) + constructor) + (t + `(truly-the ,spec (fill ,constructor initial-element)))) '((declare (type index length)))))))) ;;; MAKE-ARRAY -- transform.