X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Farith.pure.lisp;h=8c47082f9941c5e689b0f8c7f0d9162d76ee560e;hb=c44f2e6960733edc383244f3e39db3b6581255c4;hp=6e13aeaf737ecda1690a98cb7c996616d3c85972;hpb=61c18727668ff0c3263a3d363e609d4522d545cc;p=sbcl.git diff --git a/tests/arith.pure.lisp b/tests/arith.pure.lisp index 6e13aea..8c47082 100644 --- a/tests/arith.pure.lisp +++ b/tests/arith.pure.lisp @@ -106,7 +106,10 @@ (let* ((x (random most-positive-fixnum)) (x2 (* x 2)) (x3 (* x 3))) - (let ((fn (handler-bind ((sb-ext:compiler-note #'error)) + (let ((fn (handler-bind ((sb-ext:compiler-note + (lambda (c) + (when (<= x3 most-positive-fixnum) + (error c))))) (compile nil `(lambda (y) (declare (optimize speed) (type (integer 0 3) y)) @@ -199,3 +202,7 @@ ((89 125 16) (ASH A (MIN 18 -706))) (T (DPB -3 (BYTE 30 30) -1))))))) (assert (= (funcall fn 1227072 -529823 -18 -792831) -2147483649))) + +;;; ASH of a negative bignum by a bignum count would erroneously +;;; return 0 prior to sbcl-0.8.4.4 +(assert (= (ash (1- most-negative-fixnum) (1- most-negative-fixnum)) -1))