Fix: Add better handling of division by 0 (int and float) for MOD()
This is intended to be a discussion, there are several ways this can be handled for integers. Regardless, $ROPRAND is well suited for handling divide by zero errors for floating points.
Option 1: We could make both DIVIDE and MOD return the new TdiDIV_BY_ZERO error when dividing by zero Option 2: We could make only MOD return this, and leave DIVIDE returning 0 Option 3: Make MOD return 0 as well and not add TdiDIV_BY_ZERO
This moves MOD (mod_float, mod_bin, OperateBin, Tdi3Mod) into TdiDivide.c This currently adds a new TdiDIV_BY_ZERO error to tdishr_messages.xml (see above)
This is intended to fix the error handling for 0 % 0, which currently segfaults.
I've glanced at this PR and it looks good, however I will do a more thorough review later.
Here are some initial comments . . .
-
I favor adding the new
DIV_BY_ZEROstatus code for division even though it might be a breaking change for some customers. However, as per this morning's team meeting, this proposed change merits additional discussion. -
The
$ROPRANDconstant (for missing data) should be included in the new TDI documentation. (It is described in the existing Wiki, but not with the other constants.)