summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--parse.y4
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 2091ce07b5..e8c0e97cb7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Sat Nov 5 14:17:20 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (brace_body, do_body): since cmdarg_stack is saved in
+ VALUE val, should restore from the same member. on big-endian
+ platforms where VALUE is larger than int, it restored 0 in the
+ upper word. [ruby-core:77920] [Bug #12900]
+
Sat Nov 5 13:52:52 2016 Akinori MUSHA <knu@iDaemons.org>
* lib/shellwords.rb (Shellwords#shellsplit): Fix the handling of
diff --git a/parse.y b/parse.y
index a5ae823023..54ccc52cc6 100644
--- a/parse.y
+++ b/parse.y
@@ -3751,7 +3751,7 @@ brace_body : {$<vars>$ = dyna_push();}
{
$$ = new_brace_body($3, $4);
dyna_pop($<vars>1);
- CMDARG_SET($<num>2);
+ CMDARG_SET($<val>2);
}
;
@@ -3761,7 +3761,7 @@ do_body : {$<vars>$ = dyna_push();}
{
$$ = new_do_body($3, $4);
dyna_pop($<vars>1);
- CMDARG_SET($<num>2);
+ CMDARG_SET($<val>2);
}
;