diff --git a/ext/bigdecimal/bigdecimal.c b/ext/bigdecimal/bigdecimal.c index a9129086641af9..7f671f1e3e8c9b 100644 --- a/ext/bigdecimal/bigdecimal.c +++ b/ext/bigdecimal/bigdecimal.c @@ -2766,7 +2766,7 @@ rb_big_convert_to_BigDecimal(VALUE val, RB_UNUSED_VAR(size_t digs), int raise_ex assert(RB_TYPE_P(val, T_BIGNUM)); size_t size = rb_absint_size(val, NULL); - int sign = rb_big_cmp(val, INT2FIX(0)); + int sign = FIX2INT(rb_big_cmp(val, INT2FIX(0))); if (size <= sizeof(long)) { if (sign < 0) { return rb_int64_convert_to_BigDecimal(NUM2LONG(val), digs, raise_exception);