diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-02-15 19:59:26 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-02-15 19:59:26 +0900 |
| commit | e29efb02bdaa47384eabd44031fac5ffd8ce30e0 (patch) | |
| tree | a0b096d6d7098479afe924ee6376f26434a348f0 /src/vm.c | |
| parent | 8b93f8591d7820b4d5b867c9fb9860e9c9841d72 (diff) | |
| download | mruby-e29efb02bdaa47384eabd44031fac5ffd8ce30e0.tar.gz mruby-e29efb02bdaa47384eabd44031fac5ffd8ce30e0.zip | |
normalize NaN after division that may generate NaN; fix #1712
Diffstat (limited to 'src/vm.c')
| -rw-r--r-- | src/vm.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -7,6 +7,7 @@ #include <setjmp.h> #include <stddef.h> #include <stdarg.h> +#include <math.h> #include "mruby.h" #include "mruby/array.h" #include "mruby/class.h" @@ -1712,6 +1713,11 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int default: goto L_SEND; } +#ifdef MRB_NAN_BOXING + if (isnan(regs[a].attr_f)) { + regs[a] = mrb_float_value(mrb, regs[a].attr_f); + } +#endif NEXT; } |
