merge revision(s) 44127: [Backport #9238]

* insns.def: Fix optimization bug of Float#/ [Bug #9238]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@44326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagachika 2013-12-21 15:17:42 +00:00
parent 787a90cdc5
commit 86d9d122be
4 changed files with 9 additions and 4 deletions

View file

@ -1,3 +1,7 @@
Sun Dec 22 00:07:09 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
* insns.def: Fix optimization bug of Float#/ [Bug #9238]
Sat Dec 21 23:13:55 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> Sat Dec 21 23:13:55 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval_jump.c (rb_exec_end_proc): unlink and free procs data before * eval_jump.c (rb_exec_end_proc): unlink and free procs data before

View file

@ -1491,7 +1491,7 @@ opt_div
val = LONG2NUM(div); val = LONG2NUM(div);
} }
else if (FLONUM_2_P(recv, obj) && else if (FLONUM_2_P(recv, obj) &&
BASIC_OP_UNREDEFINED_P(BOP_MULT, FLOAT_REDEFINED_OP_FLAG)) { BASIC_OP_UNREDEFINED_P(BOP_DIV, FLOAT_REDEFINED_OP_FLAG)) {
val = DBL2NUM(RFLOAT_VALUE(recv) / RFLOAT_VALUE(obj)); val = DBL2NUM(RFLOAT_VALUE(recv) / RFLOAT_VALUE(obj));
} }
else if (!SPECIAL_CONST_P(recv) && !SPECIAL_CONST_P(obj)) { else if (!SPECIAL_CONST_P(recv) && !SPECIAL_CONST_P(obj)) {

View file

@ -67,6 +67,7 @@ class TestRubyOptimization < Test::Unit::TestCase
def test_fixnum_div def test_fixnum_div
assert_equal 3, 15 / 5 assert_equal 3, 15 / 5
assert_equal 6.66, redefine_method('Float', '/') { 4.2 / 6.66 }, "bug 9238"
end end
def test_fixnum_mod def test_fixnum_mod

View file

@ -1,10 +1,10 @@
#define RUBY_VERSION "2.0.0" #define RUBY_VERSION "2.0.0"
#define RUBY_RELEASE_DATE "2013-12-21" #define RUBY_RELEASE_DATE "2013-12-22"
#define RUBY_PATCHLEVEL 369 #define RUBY_PATCHLEVEL 370
#define RUBY_RELEASE_YEAR 2013 #define RUBY_RELEASE_YEAR 2013
#define RUBY_RELEASE_MONTH 12 #define RUBY_RELEASE_MONTH 12
#define RUBY_RELEASE_DAY 21 #define RUBY_RELEASE_DAY 22
#include "ruby/version.h" #include "ruby/version.h"