mruby-rational (int_lshift): exponential may be bigger than int bits

This commit is contained in:
Yukihiro "Matz" Matsumoto
2025-05-21 10:40:02 +09:00
parent 1fa9eaa2b5
commit f4b01ed19e
+1 -1
View File
@@ -311,7 +311,7 @@ int_lshift(mrb_state *mrb, mrb_value v, mrb_int n)
{
if (mrb_integer_p(v)) {
mrb_float f = (mrb_float)mrb_integer(v);
f *= 1<<n;
f *= 1L<<n;
if (mrb_int_fit_p(f, mrb_float))
return mrb_int_value(mrb, (mrb_int)f);
}