X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fcompiler.impure-cload.lisp;h=09c0fb5a0cc7048111c840dc8a077055381892ff;hb=ba02429b75951fc407be01c44fdcb01ff2908707;hp=d5e660ea52953d91bbb13076be7d92f5c6e97134;hpb=ae1efb49d01b7f887b4e6bed741a01a28124c643;p=sbcl.git diff --git a/tests/compiler.impure-cload.lisp b/tests/compiler.impure-cload.lisp index d5e660e..09c0fb5 100644 --- a/tests/compiler.impure-cload.lisp +++ b/tests/compiler.impure-cload.lisp @@ -1,3 +1,7 @@ +(eval-when (:compile-toplevel :load-toplevel :execute) + (load "assertoid.lisp") + (use-package "ASSERTOID")) + ;;; bug 254: compiler falure (defpackage :bug254 (:use :cl)) (in-package :bug254) @@ -139,5 +143,44 @@ (delete-package :bug258) +(in-package :cl-user) + +;;; +(defun bug233a (x) + (declare (optimize (speed 2) (safety 3))) + (let ((y 0d0)) + (values + (the double-float x) + (setq y (+ x 1d0)) + (setq x 3d0) + (funcall (eval ''list) y (+ y 2d0) (* y 3d0))))) +(assert (raises-error? (bug233a 4) type-error)) + +;;; compiler failure +(defun bug145b (x) + (declare (type (double-float -0d0) x)) + (declare (optimize speed)) + (+ x (sqrt (log (random 1d0))))) + +;;; compiler failures reported by Paul Dietz: inaccurate dealing with +;;; BLOCK-LAST in CONSTANT-FOLD-CALL and DO-NODES +(defun #:foo (a b c d) + (declare (type (integer -1 1000655) b) + (optimize (speed 3) (safety 1) (debug 1))) + (- (logior + (abs (- (+ b (logandc1 -473949 (max 5165 (abs (logandc1 a 250775))))))) + (logcount (logeqv (max (logxor (abs c) -1) 0) -4))) + d)) + +(defun #:foo (a d) + (declare (type (integer -8507 26755) a) + (type (integer -393314538 2084485) d) + (optimize (speed 3) (safety 1) (debug 1))) + (gcd + (if (= 0 a) 10 (abs -1)) + (logxor -1 + (min -7580 + (max (logand a 31365125) d))))) + (sb-ext:quit :unix-status 104)