summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2013-08-01 14:01:58 -0400
committerMark H Weaver <mhw@netris.org>2013-08-03 14:32:04 -0400
commit478fa0d53026f5420de5a1dab8b4f46e67138deb (patch)
tree9325380ca72eeb538a4ee4a7590bb304fa74bb15
parent00472a22bbbbbeaf2c0e61520d4f155ace05e41c (diff)
downloadguile-478fa0d53026f5420de5a1dab8b4f46e67138deb.tar.gz
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.
-rw-r--r--libguile/vm-i-scheme.c6
1 files 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) \