diff --git a/libguile/inline.h b/libguile/inline.h index a8f24d44f..eaa7494d6 100644 --- a/libguile/inline.h +++ b/libguile/inline.h @@ -243,7 +243,7 @@ SCM_C_EXTERN_INLINE SCM scm_array_handle_ref (scm_t_array_handle *h, ssize_t p) { - if (SCM_UNLIKELY (p < 0 && -p > (ssize_t) h->base)) + if (SCM_UNLIKELY (p < 0 && ((size_t)-p) > h->base)) /* catch overflow */ scm_out_of_range (NULL, scm_from_ssize_t (p)); /* perhaps should catch overflow here too */