From e0d022c347a9eb9835c6b0ac6e5fabc50e77ff69 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Mon, 26 Apr 2021 12:26:33 +0200 Subject: [PATCH] Fix error when argument to < not a real * libguile/intrinsics.c (less_p): scm_nan_p raises an error if arg is not a real; guard. --- libguile/intrinsics.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libguile/intrinsics.c b/libguile/intrinsics.c index 10f897a0e..8ad64fa25 100644 --- a/libguile/intrinsics.c +++ b/libguile/intrinsics.c @@ -291,7 +291,8 @@ less_p (SCM a, SCM b) return a_bits < b_bits ? SCM_F_COMPARE_LESS_THAN : SCM_F_COMPARE_NONE; } - if (scm_is_true (scm_nan_p (a)) || scm_is_true (scm_nan_p (b))) + if ((SCM_REALP (a) && scm_is_true (scm_nan_p (a))) + || (SCM_REALP (b) && scm_is_true (scm_nan_p (b)))) return SCM_F_COMPARE_INVALID; else if (scm_is_true (scm_less_p (a, b))) return SCM_F_COMPARE_LESS_THAN;