[Proposal] Warn about the loss of precision in binary/octal/hexadecimal literals #5921
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.
Emit an E_COMPILE_WARNING if these are seen in hexadecimal,
octal, or binary literals.
but it's been long enough to consider changing that. See Call error handler for E_COMPILE_WARNING #4758.
I expect this to behave the same on 32-bit and 64-bit builds
(floats are 64 bits on both)
For example,
0xffff_ffff_ffff_f400
overflows and becomes the float0xffff_ffff_ffff_f000
. This PR will warn about that.Instead of using
0xffff_ffff_ffff_f400
with binary bitwise operands,most code should use the signed 64-bit int
~0xbff
.or other C code doing bitwise operations.