summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2018-02-14 14:38:15 (GMT)
committerdgp <dgp@users.sourceforge.net>2018-02-14 14:38:15 (GMT)
commit55898c44b95ad321d7caa6b38bd94fb955c01d89 (patch)
treedc7213366e30d0c8e9087c164d631fc01adce1e5
parentc329006b1a6c193735b2d676d9b4dae68bda5671 (diff)
parentb9b319fad234576476d2019b909b0fd4b180fba4 (diff)
downloadtcl-55898c44b95ad321d7caa6b38bd94fb955c01d89.zip
tcl-55898c44b95ad321d7caa6b38bd94fb955c01d89.tar.gz
tcl-55898c44b95ad321d7caa6b38bd94fb955c01d89.tar.bz2
Fix regression in [expr {0%$bignum}].
-rw-r--r--generic/tclExecute.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 22c6cb5..79797f5 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -8024,6 +8024,14 @@ ExecuteExtendedBinaryMathOp(
}
if (type1 == TCL_NUMBER_WIDE) {
w1 = *((const Tcl_WideInt *)ptr1);
+
+ if (w1 == 0) {
+ /*
+ * 0 % (non-zero) always yields remainder of 0.
+ */
+
+ return constants[0];
+ }
if (type2 != TCL_NUMBER_BIG) {
Tcl_WideInt wQuotient, wRemainder;
Tcl_GetWideIntFromObj(NULL, value2Ptr, &w2);