From 4d87842bb310d2c9a95c22835ac5817134ffd405 Mon Sep 17 00:00:00 2001 From: Marius Vollmer Date: Thu, 14 Jun 2001 17:41:21 +0000 Subject: [PATCH] (SCM_SRS): Cast shiftee to scm_signed_bits_t. (SCM_INUM): Cast result to scm_signed_bits_t. --- libguile/numbers.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libguile/numbers.h b/libguile/numbers.h index e6ec6e10c..93e2c4bf9 100644 --- a/libguile/numbers.h +++ b/libguile/numbers.h @@ -69,7 +69,7 @@ /* SCM_SRS is signed right shift */ #if (-1 == (((-1) << 2) + 2) >> 2) -# define SCM_SRS(x, y) ((x) >> (y)) +# define SCM_SRS(x, y) ((scm_signed_bits_t)(x) >> (y)) #else # define SCM_SRS(x, y) ((SCM_UNPACK (x) < 0) ? ~((~SCM_UNPACK (x)) >> (y)) : (SCM_UNPACK (x) >> (y))) #endif /* (-1 == (((-1) << 2) + 2) >> 2) */ @@ -78,7 +78,7 @@ #define SCM_INUMP(x) (2 & SCM_UNPACK (x)) #define SCM_NINUMP(x) (!SCM_INUMP (x)) #define SCM_MAKINUM(x) (SCM_PACK (((x) << 2) + 2L)) -#define SCM_INUM(x) (SCM_SRS (SCM_UNPACK (x), 2)) +#define SCM_INUM(x) ((scm_signed_bits_t)(SCM_SRS (SCM_UNPACK (x), 2))) /* SCM_FIXABLE is true if its long argument can be encoded in an SCM_INUM. */