diff options
author | charliesome <charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-28 16:09:08 +0000 |
---|---|---|
committer | charliesome <charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-28 16:09:08 +0000 |
commit | 7ffd3e9444d9f8b4f738da896712bd3ecbe4bbe6 (patch) | |
tree | ccdeedbd9e2ecdaee44342935e5462bc379c468c /numeric.c | |
parent | da0c4e5e1166db66f254194fe8f2dcff55d904ef (diff) | |
download | ruby-7ffd3e9444d9f8b4f738da896712bd3ecbe4bbe6.tar.gz |
* 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.c | 2 |
1 files changed, 0 insertions, 2 deletions
@@ -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)); |