i_gcd() does not work for MRB_INT_MIN.

This commit is contained in:
Yukihiro "Matz" Matsumoto
2021-02-08 21:18:50 +09:00
parent db1172b48c
commit aa5b7fbd80
+2 -2
View File
@@ -156,10 +156,10 @@ rational_new_i(mrb_state *mrb, mrb_int n, mrb_int d)
if (d == 0) {
rat_zerodiv(mrb);
}
a = i_gcd(n, d);
if ((n == MRB_INT_MIN || d == MRB_INT_MIN) && a == -1) {
if (n == MRB_INT_MIN || d == MRB_INT_MIN) {
rat_overflow(mrb);
}
a = i_gcd(n, d);
return rational_new(mrb, n/a, d/a);
}