On Wed, 7 May 2025 17:34:27 GMT, fabioromano1 <d...@openjdk.org> wrote:

>> Ah right, but you probably want
>> Suggestion:
>> 
>>             if ((bitLength() - 1L) * exponent > Integer.MAX_VALUE) {
>> 
>> I mean `>` rather than `>=`
>
>> Ah right, but you probably want
> 
> No, the sufficient condition to get the overflow is `(bitLength() - 1L) * 
> exponent + 1L > Integer.MAX_VALUE`, which is equivalent to that one I wrote 
> above.

At some point you proposed

(bitLength() - 1L) * exponent >= (long) MAX_MAG_LENGTH << 5

Given the value of `MAX_MAG_LENGTH`, which is 2^26, this is equivalent to

(bitLength() - 1L) * exponent >= 1L << 31

that is, to

(bitLength() - 1L) * exponent > Integer.MAX_VALUE


What am I missing?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24690#discussion_r2078163320

Reply via email to