summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-12-12 23:52:48 -0800
committerYukihiro "Matz" Matsumoto <[email protected]>2012-12-12 23:52:48 -0800
commitc81a97df9447fe2fff1925f865b06b45bafb8eeb (patch)
tree93389d0fe522bba5d837762226e880767ba8bb4e /src
parent35abbd1486c49a35d6a3414fd647ae8f2fc7ebbe (diff)
parent6dede4edf9c1748c959ad85c2320008ffeade159 (diff)
downloadmruby-c81a97df9447fe2fff1925f865b06b45bafb8eeb.tar.gz
mruby-c81a97df9447fe2fff1925f865b06b45bafb8eeb.zip
Merge pull request #625 from skandhas/pr-fix-integer-overflow-checkups-in-OP_SUB-OP_SUBI
fix incorrect integer-overflow checkups in OP_SUB/OP_SUBI case.
Diffstat (limited to 'src')
-rw-r--r--src/vm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/vm.c b/src/vm.c
index 92861d48c..fc251d3cb 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1390,7 +1390,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
x = mrb_fixnum(regs[a]);
y = mrb_fixnum(regs[a+1]);
z = x - y;
- if (((x < 0) ^ (y < 0)) == 0 && (x < 0) != (z < 0)) {
+ if (((x < 0) ^ (y < 0)) != 0 && (x < 0) != (z < 0)) {
/* integer overflow */
SET_FLT_VALUE(regs[a], (mrb_float)x - (mrb_float)y);
break;
@@ -1532,7 +1532,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
mrb_int y = GETARG_C(i);
mrb_int z = x - y;
- if (((x < 0) ^ (y < 0)) == 0 && (x < 0) != (z < 0)) {
+ if (((x < 0) ^ (y < 0)) != 0 && (x < 0) != (z < 0)) {
/* integer overflow */
SET_FLT_VALUE(regs[a], (mrb_float)x - (mrb_float)y);
break;