wingo pushed a commit to branch wip-inlinable-exports
in repository guile.
commit e0d022c347a9eb9835c6b0ac6e5fabc50e77ff69
Author: Andy Wingo <[email protected]>
AuthorDate: Mon Apr 26 12:26:33 2021 +0200
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 10f897a..8ad64fa 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;