C++: Cleanup missingGuardAgainstOverflow #5780
Merged
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.
Now that #5678 is merged we can undo the ugly hack I added in bb447d7 to detect when
exprMightOverflowPositively
(andNegatively
) couldn't analyze the expression.When doing this change, I realized that we forgot to include the assignment versions of arithmetic operations (and left shifts) in the set of expressions that might overflow. I have added these in 05d693e.
We remove a false positive from our tests now because
sc1 += 0
was analyzable (and not overflowing), soconvertedExprMightOverflowPositively
didn't hold. But because the other disjunct (i.e., the hacky one I added in bb447d7):was satisfied, we still marked this expression as possible overflowing. Now that we can just use
convertedExprMightOverflowPositively
, we remove this false positive.