From 478fa0d53026f5420de5a1dab8b4f46e67138deb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 1 Aug 2013 14:01:58 -0400 Subject: [PATCH] VM: Redefine INUM_MIN and INUM_MAX without assumptions. * libguile/vm-i-scheme.c (INUM_MIN, INUM_MAX): Redefine to avoid assumptions about the representation of inums. --- libguile/vm-i-scheme.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libguile/vm-i-scheme.c b/libguile/vm-i-scheme.c index 7402cc1a7..edd783ef5 100644 --- a/libguile/vm-i-scheme.c +++ b/libguile/vm-i-scheme.c @@ -207,8 +207,10 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2) /* The maximum/minimum tagged integers. */ #undef INUM_MAX #undef INUM_MIN -#define INUM_MAX (INTPTR_MAX - 1) -#define INUM_MIN (INTPTR_MIN + scm_tc2_int) +#define INUM_MAX \ + ((scm_t_signed_bits) SCM_UNPACK (SCM_I_MAKINUM (SCM_MOST_POSITIVE_FIXNUM))) +#define INUM_MIN \ + ((scm_t_signed_bits) SCM_UNPACK (SCM_I_MAKINUM (SCM_MOST_NEGATIVE_FIXNUM))) #undef FUNC2 #define FUNC2(CFUNC,SFUNC) \