Debugger: Do not report division by zero also for rem

This commit is contained in:
Yan Zhulanow
2018-07-18 15:16:13 +03:00
parent 1464a4ac58
commit af2f5549c5
+28 -4
View File
@@ -232,7 +232,13 @@ class SingleInstructionInterpreter(private val eval: Eval) : Interpreter<Value>(
}
int(value1.int / divider)
}
IREM -> int(value1.int % value2.int)
IREM -> {
val divider = value2.int
if (divider == 0) {
divisionByZero()
}
int(value1.int % divider)
}
ISHL -> int(value1.int shl value2.int)
ISHR -> int(value1.int shr value2.int)
IUSHR -> int(value1.int ushr value2.int)
@@ -250,7 +256,13 @@ class SingleInstructionInterpreter(private val eval: Eval) : Interpreter<Value>(
}
long(value1.long / divider)
}
LREM -> long(value1.long % value2.long)
LREM -> {
val divider = value2.long
if (divider == 0L) {
divisionByZero()
}
long(value1.long % divider)
}
LSHL -> long(value1.long shl value2.int)
LSHR -> long(value1.long shr value2.int)
LUSHR -> long(value1.long ushr value2.int)
@@ -268,7 +280,13 @@ class SingleInstructionInterpreter(private val eval: Eval) : Interpreter<Value>(
}
float(value1.float / divider)
}
FREM -> float(value1.float % value2.float)
FREM -> {
val divider = value2.float
if (divider == 0f) {
divisionByZero()
}
float(value1.float % divider)
}
DADD -> double(value1.double + value2.double)
DSUB -> double(value1.double - value2.double)
@@ -280,7 +298,13 @@ class SingleInstructionInterpreter(private val eval: Eval) : Interpreter<Value>(
}
double(value1.double / divider)
}
DREM -> double(value1.double % value2.double)
DREM -> {
val divider = value2.double
if (divider == 0.0) {
divisionByZero()
}
double(value1.double % divider)
}
LCMP -> {
val l1 = value1.long