From b635388a900206b673fc23b5442345236b84cd75 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Thu, 24 Aug 2023 13:44:03 -0700 Subject: Check that __builtin_mul_overflow can handle long long Fixes [Bug #17646] Patch from xtkoba (Tee KOBAYASHI) --- internal/bits.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'internal/bits.h') diff --git a/internal/bits.h b/internal/bits.h index 6248e4cfa9..538e6c11ae 100644 --- a/internal/bits.h +++ b/internal/bits.h @@ -118,12 +118,16 @@ MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, FIXNUM_MIN, FIXNUM_MAX) #endif -#ifdef MUL_OVERFLOW_P +#if defined(MUL_OVERFLOW_P) && defined(USE___BUILTIN_MUL_OVERFLOW_LONG_LONG) # define MUL_OVERFLOW_LONG_LONG_P(a, b) MUL_OVERFLOW_P(a, b) +#else +# define MUL_OVERFLOW_LONG_LONG_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LLONG_MIN, LLONG_MAX) +#endif + +#ifdef MUL_OVERFLOW_P # define MUL_OVERFLOW_LONG_P(a, b) MUL_OVERFLOW_P(a, b) # define MUL_OVERFLOW_INT_P(a, b) MUL_OVERFLOW_P(a, b) #else -# define MUL_OVERFLOW_LONG_LONG_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LLONG_MIN, LLONG_MAX) # define MUL_OVERFLOW_LONG_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, LONG_MIN, LONG_MAX) # define MUL_OVERFLOW_INT_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, INT_MIN, INT_MAX) #endif -- cgit v1.2.3