diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-09-20 17:32:38 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-09-20 17:32:38 +0900 |
| commit | c29822f80ccb002a7b3e07fd46c0fa9a260cd4f4 (patch) | |
| tree | cc6d789ea560d64c180f1900cf8616d0c3c381f1 /mrbgems | |
| parent | 0455313a9bdbe93556a8fd31b7c011dd004a6f2b (diff) | |
| download | mruby-c29822f80ccb002a7b3e07fd46c0fa9a260cd4f4.tar.gz mruby-c29822f80ccb002a7b3e07fd46c0fa9a260cd4f4.zip | |
codegen.c (gen_addsub): use `mrb_int_sub_overflow()`.
Diffstat (limited to 'mrbgems')
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index ac611f422..2d06c703a 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -784,11 +784,12 @@ gen_addsub(codegen_scope *s, uint8_t op, uint16_t dst) } return; } - if (op == OP_SUB) { - if (n == MRB_INT_MIN) goto normal; - n = -n; + if (op == OP_ADD) { + if (mrb_int_add_overflow(n0, n, &n)) goto normal; + } + else { /* OP_SUB */ + if (mrb_int_sub_overflow(n0, n, &n)) goto normal; } - if (mrb_int_add_overflow(n0, n, &n)) goto normal; s->pc = addr_pc(s, data0.addr); gen_int(s, dst, n); } |
