diff --git a/libguile/strings.h b/libguile/strings.h index 9307a1742..4a0cd5fc3 100644 --- a/libguile/strings.h +++ b/libguile/strings.h @@ -57,7 +57,7 @@ #define SCM_SET_STRING_CHARS(s, c) (SCM_SET_CELL_WORD_1 ((s), (c))) #define SCM_STRING_MAX_LENGTH ((1UL << 24) - 1UL) #define SCM_STRING_LENGTH(x) ((size_t) (SCM_CELL_WORD_0 (x) >> 8)) -#define SCM_SET_STRING_LENGTH(s, l) (SCM_SET_CELL_WORD_0 ((s), ((l) << 8) + scm_tc7_string)) +#define SCM_SET_STRING_LENGTH(s, l) (SCM_SET_CELL_WORD_0 ((s), (((long) (l)) << 8) + scm_tc7_string)) #define SCM_STRING_COERCE_0TERMINATION_X(x) \ { if (!SCM_IMP (x) && (SCM_TYP7 (x) == scm_tc7_substring)) \