Debugger: Do not report division by zero also for rem
This commit is contained in:
@@ -232,7 +232,13 @@ class SingleInstructionInterpreter(private val eval: Eval) : Interpreter<Value>(
|
|||||||
}
|
}
|
||||||
int(value1.int / divider)
|
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)
|
ISHL -> int(value1.int shl value2.int)
|
||||||
ISHR -> int(value1.int shr value2.int)
|
ISHR -> int(value1.int shr value2.int)
|
||||||
IUSHR -> int(value1.int ushr 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)
|
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)
|
LSHL -> long(value1.long shl value2.int)
|
||||||
LSHR -> long(value1.long shr value2.int)
|
LSHR -> long(value1.long shr value2.int)
|
||||||
LUSHR -> long(value1.long ushr 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)
|
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)
|
DADD -> double(value1.double + value2.double)
|
||||||
DSUB -> 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)
|
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 -> {
|
LCMP -> {
|
||||||
val l1 = value1.long
|
val l1 = value1.long
|
||||||
|
|||||||
Reference in New Issue
Block a user