diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-14 23:34:43 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-14 23:34:43 +0900 |
| commit | bb1fb2f43ddadba8f5687dc4c677f8fb83a2ad8e (patch) | |
| tree | 95faead93563ecbd28c3720e320b0f616a937291 /include | |
| parent | 2c6a5d3a77ea4aad6d8b0292d3485bdaab2bf860 (diff) | |
| download | mruby-bb1fb2f43ddadba8f5687dc4c677f8fb83a2ad8e.tar.gz mruby-bb1fb2f43ddadba8f5687dc4c677f8fb83a2ad8e.zip | |
Fixed wrong condition in `mrb_int_mul_overflow()`.
Diffstat (limited to 'include')
| -rw-r--r-- | include/mruby/numeric.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/mruby/numeric.h b/include/mruby/numeric.h index 05f17f81e..023d30ffb 100644 --- a/include/mruby/numeric.h +++ b/include/mruby/numeric.h @@ -68,7 +68,7 @@ MRB_API mrb_value mrb_num_mul(mrb_state *mrb, mrb_value x, mrb_value y); #endif #endif -#ifdef MRB_HAVE_TYPE_GENERIC_CHECKED_ARITHMETIC_BUILTINS +#if 0 && defined MRB_HAVE_TYPE_GENERIC_CHECKED_ARITHMETIC_BUILTINS static inline mrb_bool mrb_int_add_overflow(mrb_int augend, mrb_int addend, mrb_int *sum) @@ -122,7 +122,7 @@ mrb_int_mul_overflow(mrb_int a, mrb_int b, mrb_int *c) #ifdef MRB_INT32 int64_t n = (int64_t)a * b; *c = (mrb_int)n; - return n <= MRB_INT_MAX && n >= MRB_INT_MIN; + return n > MRB_INT_MAX && n < MRB_INT_MIN; #else /* MRB_INT64 */ if (a > 0 && b > 0 && a > MRB_INT_MAX / b) return TRUE; if (a < 0 && b > 0 && a < MRB_INT_MIN / b) return TRUE; |
