diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index 27c62397ac..1cc9937acb 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -360,7 +360,7 @@ rb_fix2ulong(VALUE x) #define RB_POSFIXABLE(f) ((f) < RUBY_FIXNUM_MAX+1) #define RB_NEGFIXABLE(f) ((f) >= RUBY_FIXNUM_MIN) #if defined HAVE_BUILTIN___BUILTIN_ADD_OVERFLOW -# define RB_FIXABLE(f) ({SIGNED_VALUE c; !__builtin_add_overflow((f), (f), &c);}) +# define RB_FIXABLE(f) ({SIGNED_VALUE a=(f),c; !__builtin_add_overflow(a, a, &c);}) #else # define RB_FIXABLE(f) (RB_POSFIXABLE(f) && RB_NEGFIXABLE(f)) #endif