summaryrefslogtreecommitdiffhomepage
path: root/src/numeric.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/numeric.c')
-rw-r--r--src/numeric.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/numeric.c b/src/numeric.c
index afb8415a0..8c7d448bd 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -877,7 +877,7 @@ static mrb_value flo_or(mrb_state *mrb, mrb_value x);
static mrb_value flo_xor(mrb_state *mrb, mrb_value x);
#define bit_op(x,y,op1,op2) do {\
if (mrb_fixnum_p(y)) return mrb_fixnum_value(mrb_fixnum(x) op2 mrb_fixnum(y));\
- return flo_ ## op1(mrb, mrb_float_value(mrb, mrb_fixnum(x)));\
+ return flo_ ## op1(mrb, mrb_float_value(mrb, (mrb_float)mrb_fixnum(x)));\
} while(0)
/* 15.2.8.3.9 */
@@ -951,7 +951,7 @@ lshift(mrb_state *mrb, mrb_int val, mrb_int width)
(val < (MRB_INT_MIN >> width))) {
goto bit_overflow;
}
- return mrb_fixnum_value(val * (1u << width));
+ return mrb_fixnum_value(val * ((mrb_int)1 << width));
}
bit_overflow:
@@ -1162,7 +1162,7 @@ fix_minus(mrb_state *mrb, mrb_value self)
MRB_API mrb_value
-mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, int base)
+mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, mrb_int base)
{
char buf[MRB_INT_BIT+1];
char *b = buf + sizeof buf;