diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-12-10 15:55:45 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-12-10 15:55:45 +0900 |
| commit | d93422315cceb4fbe0fcb17d070f329518343e49 (patch) | |
| tree | 34e537ae32481c49558c78e1d4f9b8e31ffad98e | |
| parent | 0af170fbec1bbf412b009117736d22e6f5c39b03 (diff) | |
| parent | 13979a43768953e8983a73aef45251063aef6485 (diff) | |
| download | mruby-d93422315cceb4fbe0fcb17d070f329518343e49.tar.gz mruby-d93422315cceb4fbe0fcb17d070f329518343e49.zip | |
Merge branch 'bouk-negate'
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 4 | ||||
| -rw-r--r-- | test/t/codegen.rb | 10 |
2 files changed, 14 insertions, 0 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 99ab4dd97..38da952b4 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -2221,6 +2221,10 @@ codegen(codegen_scope *s, node *tree, int val) { nt = (intptr_t)tree->car; tree = tree->cdr; + if (!val) { + codegen(s, tree, NOVAL); + break; + } switch (nt) { case NODE_FLOAT: { diff --git a/test/t/codegen.rb b/test/t/codegen.rb index 528f58d9e..709902741 100644 --- a/test/t/codegen.rb +++ b/test/t/codegen.rb @@ -81,3 +81,13 @@ assert('next in normal loop with 127 arguments') do end end end + +assert('negate literal register alignment') do + a = *case + when 0 + -0.0 + 2 + end + + assert_equal [2], a +end |
