summaryrefslogtreecommitdiff
path: root/numeric.c
diff options
context:
space:
mode:
Diffstat (limited to 'numeric.c')
-rw-r--r--numeric.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/numeric.c b/numeric.c
index 605fa6d0b9..f9704dc9be 100644
--- a/numeric.c
+++ b/numeric.c
@@ -1094,12 +1094,13 @@ static VALUE
fix_lshift(x, y)
VALUE x, y;
{
- long val, width;
+ long val;
+ int width;
val = NUM2LONG(x);
- width = NUM2LONG(y);
+ width = NUM2INT(y);
if (width > (sizeof(VALUE)*CHAR_BIT-1)
- || (unsigned long)val>>(sizeof(VALUE)*CHAR_BIT-1-width) > 0) {
+ || ((unsigned long)val)>>(sizeof(VALUE)*CHAR_BIT-1-width) > 0) {
return big_lshift(int2big(val), y);
}
val = val << width;