diff options
Diffstat (limited to 'internal.h')
-rw-r--r-- | internal.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/internal.h b/internal.h index d5f1b93b39..b431c47e9a 100644 --- a/internal.h +++ b/internal.h @@ -252,7 +252,7 @@ asan_unpoison_object(VALUE obj, bool newobj_p) __builtin_mul_overflow_p((a), (b), (__typeof__(a * b))0) #elif defined HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW #define MUL_OVERFLOW_P(a, b) \ - RB_GNUC_EXTENSION_BLOCK(__typeof__(a) c; __builtin_mul_overflow((a), (b), &c)) + ({__typeof__(a) c; __builtin_mul_overflow((a), (b), &c);}) #endif #define MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, min, max) ( \ @@ -265,10 +265,10 @@ asan_unpoison_object(VALUE obj, bool newobj_p) #ifdef HAVE_BUILTIN___BUILTIN_MUL_OVERFLOW_P /* __builtin_mul_overflow_p can take bitfield */ /* and GCC permits bitfields for integers other than int */ -#define MUL_OVERFLOW_FIXNUM_P(a, b) RB_GNUC_EXTENSION_BLOCK( \ +#define MUL_OVERFLOW_FIXNUM_P(a, b) ({ \ struct { long fixnum : SIZEOF_LONG * CHAR_BIT - 1; } c; \ __builtin_mul_overflow_p((a), (b), c.fixnum); \ -) +}) #else #define MUL_OVERFLOW_FIXNUM_P(a, b) MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, FIXNUM_MIN, FIXNUM_MAX) #endif |