diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-01 01:12:54 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-01 01:12:54 +0000 |
commit | 6ad3f616638b4bfa9140318897a1e68df5b29eec (patch) | |
tree | aa73012cff6d383eb166561647ca85719056c793 | |
parent | b6f174afdb81f0f0cbe0ff848dddad047d00c40f (diff) |
* bignum.c (big_op): comparison of bignum and infinity has returned 1
or -1, but it must return boolean.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | bignum.c | 5 | ||||
-rw-r--r-- | test/ruby/test_bignum.rb | 2 |
3 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Sun Aug 1 09:35:35 2010 Yusuke Endoh <[email protected]> + + * bignum.c (big_op): comparison of bignum and infinity has returned 1 + or -1, but it must return boolean. + Sun Aug 1 09:44:25 2010 Tanaka Akira <[email protected]> * class.c (rb_include_module): don't clear the method cache if the @@ -1453,8 +1453,9 @@ big_op(VALUE x, VALUE y, int op) double a = RFLOAT_VALUE(y); if (isinf(a)) { - if (a > 0.0) return INT2FIX(-1); - else return INT2FIX(1); + if (a > 0.0) rel = INT2FIX(-1); + else rel = INT2FIX(1); + break; } rel = rb_dbl_cmp(rb_big2dbl(x), a); break; diff --git a/test/ruby/test_bignum.rb b/test/ruby/test_bignum.rb index 5cff48c4d7..13b5b9dbe0 100644 --- a/test/ruby/test_bignum.rb +++ b/test/ruby/test_bignum.rb @@ -185,6 +185,8 @@ class TestBignum < Test::Unit::TestCase assert(T31P < T64P) assert(T64P > T31P) assert_raise(ArgumentError) { T31P < "foo" } + assert(T64 < (1.0/0.0)) + assert(!(T64 > (1.0/0.0))) end def test_eq |