diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-12-10 11:21:54 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2016-12-10 11:21:54 +0900 |
| commit | 8c26efd7ed0cbaaf85b2e090bb2801f00b9c1226 (patch) | |
| tree | 3a6933344ff3c8d1f16f80e23678c2bb7ca781e7 | |
| parent | c85feaec56b942ad4049079ed6f2df46f20a577d (diff) | |
| parent | 1264219832aeff2630f47d4abb9bee6d013c3e75 (diff) | |
| download | mruby-8c26efd7ed0cbaaf85b2e090bb2801f00b9c1226.tar.gz mruby-8c26efd7ed0cbaaf85b2e090bb2801f00b9c1226.zip | |
Merge pull request #3338 from bouk/break-127
Fix segfault in gen_values with NOVAL and more than 127 args
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 2 | ||||
| -rw-r--r-- | test/t/codegen.rb | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 3cfd99d41..99ab4dd97 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -818,8 +818,6 @@ gen_values(codegen_scope *s, node *t, int val) } } else { - codegen(s, t->car->cdr, NOVAL); - t = t->cdr; while (t) { codegen(s, t->car, NOVAL); t = t->cdr; diff --git a/test/t/codegen.rb b/test/t/codegen.rb index 3058a7fbc..528f58d9e 100644 --- a/test/t/codegen.rb +++ b/test/t/codegen.rb @@ -73,3 +73,11 @@ assert('undef with 127 or more arguments') do a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a end end + +assert('next in normal loop with 127 arguments') do + assert_raise NameError do + while true + next A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A + end + end +end |
