aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--bootstraptest/test_knownbug.rb8
-rw-r--r--bootstraptest/test_massign.rb7
-rw-r--r--insns.def2
4 files changed, 13 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 06b87037e6..902f7e8b83 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jan 24 02:13:07 2008 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * insns.def (expandarray): fix stack inc.
+ * bootstraptest/test_knownbug.rb, test_massign.rb: move a fixed test.
+
Thu Jan 24 01:00:34 2008 NARUSE, Yui <naruse@ruby-lang.org>
* encoding.{c, h} (rb_usascii_encoding): added.
diff --git a/bootstraptest/test_knownbug.rb b/bootstraptest/test_knownbug.rb
index 9b688fca00..6d1c4721d2 100644
--- a/bootstraptest/test_knownbug.rb
+++ b/bootstraptest/test_knownbug.rb
@@ -17,14 +17,6 @@ assert_equal 'ok', %q{
end
}, '[ruby-core:14537]'
-assert_equal 'ok', %q{
- while true
- *, z = 1
- break
- end
- :ok
-}, '[ruby-dev:32892]'
-
assert_equal 'ok', %q{
1.times do
diff --git a/bootstraptest/test_massign.rb b/bootstraptest/test_massign.rb
index ad31729a73..0f63dd424a 100644
--- a/bootstraptest/test_massign.rb
+++ b/bootstraptest/test_massign.rb
@@ -174,3 +174,10 @@ assert_equal 'ok', %q{
:ok
}, '[ruby-dev:32581]'
+assert_equal 'ok', %q{
+ while true
+ *, z = 1
+ break
+ end
+ :ok
+}, '[ruby-dev:32892]'
diff --git a/insns.def b/insns.def
index 41c8337156..e9b72b7dc8 100644
--- a/insns.def
+++ b/insns.def
@@ -450,7 +450,7 @@ DEFINE_INSN
expandarray
(rb_num_t num, rb_num_t flag)
(..., VALUE ary)
-(...) // inc += flag == 0x02 ? num : ((num > 0) ? num - 1 + (flag ? 1 : 0) : num + 1 - (flag ? 1 : 0));
+(...) // inc += num - 1 + (flag & 1 ? 1 : 0);
{
vm_expandarray(GET_CFP(), ary, num, flag);
}