| Auto-Submit | +1 |
| Commit-Queue | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[turbolev] Fix crash in Float64SpeculateSafeAdd truncation
`ProcessFloat64SpeculateSafeAdd` previously allowed speculation if at
least one input was a safe integer or a Phi node. This logic was too
permissive, as it allowed the other input to be an unsafe
`Float64Constant` (such as `NaN`).
When `TruncationProcessor::GetSpeculatedTruncatedInt32Input`
subsequently processed this unsafe constant, it triggered a
`DCHECK(input->GetStaticRange().IsSafeInt())` failure, as `NaN` cannot
be represented as a safe integer.
This CL fixes the issue by explicitly checking for "unsafe constants"
(Float64Constants that are not safe integers) in
`ProcessFloat64SpeculateSafeAdd`. If either input is an unsafe constant,
we bail out of the speculation and overwrite the node with a standard
`Float64Add`.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |