Fix: Add better handling of division by 0 (int and float) for MOD()#2994
Open
santorofer wants to merge 1 commit intoMDSplus:alphafrom
Open
Fix: Add better handling of division by 0 (int and float) for MOD()#2994santorofer wants to merge 1 commit intoMDSplus:alphafrom
santorofer wants to merge 1 commit intoMDSplus:alphafrom
Conversation
- Move relevant MOD functions into TdiDive.c (i.e mod_float, mod_bin, OperateBin, Tdi3Mod) - Add new DIV_BY_ZERO in tdishr_messages.xml - Make use of such new error message - Refactor switch statement
Contributor
|
I've glanced at this PR and it looks good, however I will do a more thorough review later. Here are some initial comments . . .
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.