Update of /cvsroot/sbcl/sbcl/tests
In directory sc8-pr-cvs1:/tmp/cvs-serv13166/tests
Modified Files:
compiler.impure.lisp
Log Message:
0.7.10.29:
Fix compiler crash in new COERCE defoptimizer
... CAREFUL-SPECIFIER-TYPE can return NIL, so handle that case
too. (Might it not be nice to provide a compiler
warning? Or should that be left to the IR1-TRANSFORM?)
Index: compiler.impure.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/tests/compiler.impure.lisp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- compiler.impure.lisp 19 Dec 2002 06:24:23 -0000 1.39
+++ compiler.impure.lisp 21 Dec 2002 10:53:29 -0000 1.40
@@ -719,7 +719,14 @@
(assert (equal (bug223-int 4) '(ext int 3)))
(bug223-wrap)
(assert (equal (bug223-int 4) '(ext ext int 2)))
-
+
+;;; COERCE got its own DEFOPTIMIZER which has to reimplement most of
+;;; SPECIFIER-TYPE-NTH-ARG. For a while, an illegal type would throw
+;;; you into the debugger on compilation.
+(defun coerce-defopt (x)
+ ;; illegal, but should be compilable.
+ (coerce x '(values t)))
+(assert (null (ignore-errors (coerce-defopt 3))))
;;;; tests not in the problem domain, but of the consistency of the
;;;; compiler machinery itself
|