diff --git a/ansi-tests/random-int-form.lsp b/ansi-tests/random-int-form.lsp index e421688c4f639bf4b4edef83ac68207e3da422ca..107e509f0b4b650fcfaf2f06ef2157feb2162f8b 100644 --- a/ansi-tests/random-int-form.lsp +++ b/ansi-tests/random-int-form.lsp @@ -115,11 +115,17 @@ "Generate a list (LO HI) of integers, LO <= HI. This is used for generating integer types." (declare (ignore var)) - (flet ((%r () (let ((r (ash 1 (1+ (random *maximum-random-int-bits*))))) - (- (random r) (floor (/ r 2)))))) - (let ((x (%r)) - (y (%r))) - (list (min x y) (max x y))))) + (rcase + (1 (flet ((%r () (let ((r (ash 1 (1+ (random *maximum-random-int-bits*))))) + (- (random r) (floor (/ r 2)))))) + (let ((x (%r)) + (y (%r))) + (list (min x y) (max x y))))) + (1 (let* ((b (ash 1 (1+ (random *maximum-random-int-bits*)))) + (b2 (floor (/ b 2)))) + (let ((x (- (random b) b2)) + (y (- (random b) b2))) + (list (min x y) (max x y))))))) (defparameter *flet-names* nil)