summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-12-21 15:17:42 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-12-21 15:17:42 +0000
commit86d9d122bef745aad9bf3dabd80ad03fbec1beec (patch)
treed400019e0e2d41aa0263b5c9f98b594200ddb27d
parent787a90cdc5fb62568de0e1142f19effacec55482 (diff)
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
-rw-r--r--ChangeLog4
-rw-r--r--insns.def2
-rw-r--r--test/ruby/test_optimization.rb1
-rw-r--r--version.h6
4 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 237cfa5d2e..f8d979b95b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
* eval_jump.c (rb_exec_end_proc): unlink and free procs data before
diff --git a/insns.def b/insns.def
index ea138cc69d..02465ad4af 100644
--- a/insns.def
+++ b/insns.def
@@ -1491,7 +1491,7 @@ opt_div
val = LONG2NUM(div);
}
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));
}
else if (!SPECIAL_CONST_P(recv) && !SPECIAL_CONST_P(obj)) {
diff --git a/test/ruby/test_optimization.rb b/test/ruby/test_optimization.rb
index a3b4aedcdc..fe25cdf1c9 100644
--- a/test/ruby/test_optimization.rb
+++ b/test/ruby/test_optimization.rb
@@ -67,6 +67,7 @@ class TestRubyOptimization < Test::Unit::TestCase
def test_fixnum_div
assert_equal 3, 15 / 5
+ assert_equal 6.66, redefine_method('Float', '/') { 4.2 / 6.66 }, "bug 9238"
end
def test_fixnum_mod
diff --git a/version.h b/version.h
index 1ce2bd6c16..0174bbfaa1 100644
--- a/version.h
+++ b/version.h
@@ -1,10 +1,10 @@
#define RUBY_VERSION "2.0.0"
-#define RUBY_RELEASE_DATE "2013-12-21"
-#define RUBY_PATCHLEVEL 369
+#define RUBY_RELEASE_DATE "2013-12-22"
+#define RUBY_PATCHLEVEL 370
#define RUBY_RELEASE_YEAR 2013
#define RUBY_RELEASE_MONTH 12
-#define RUBY_RELEASE_DAY 21
+#define RUBY_RELEASE_DAY 22
#include "ruby/version.h"