summaryrefslogtreecommitdiff
path: root/numeric.c
diff options
context:
space:
mode:
authorcharliesome <charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-28 16:09:08 +0000
committercharliesome <charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-28 16:09:08 +0000
commit7ffd3e9444d9f8b4f738da896712bd3ecbe4bbe6 (patch)
treeccdeedbd9e2ecdaee44342935e5462bc379c468c /numeric.c
parentda0c4e5e1166db66f254194fe8f2dcff55d904ef (diff)
* numeric.c (fix_mul): remove FIT_SQRT_LONG test as it was causing
fix_mul to return an incorrect result for -2147483648*-2147483648 on 64 bit platforms * test/ruby/test_integer_comb.rb (class TestIntegerComb): add test case git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'numeric.c')
-rw-r--r--numeric.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/numeric.c b/numeric.c
index 79f8537fdd..6752becc00 100644
--- a/numeric.c
+++ b/numeric.c
@@ -2728,8 +2728,6 @@ fix_mul(VALUE x, VALUE y)
if (FIXABLE(d)) return LONG2FIX(d);
return rb_ll2inum(d);
#else
- if (FIT_SQRT_LONG(a) && FIT_SQRT_LONG(b))
- return LONG2FIX(a*b);
if (a == 0) return x;
if (MUL_OVERFLOW_FIXNUM_P(a, b))
r = rb_big_mul(rb_int2big(a), rb_int2big(b));