Opened 2 years ago
Closed 2 years ago
#20209 closed enhancement (fixed)
rustc-1.80.1
| Reported by: | Bruce Dubbs | Owned by: | Xi Ruoyao |
|---|---|---|---|
| Priority: | normal | Milestone: | 12.2 |
| Component: | BOOK | Version: | git |
| Severity: | medium | Keywords: | |
| Cc: |
Description
New point version.
Change History (4)
comment:1 by , 2 years ago
comment:2 by , 2 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
| Summary: | rustc-1.80,1 → rustc-1.80.1 |
comment:3 by , 2 years ago
Fixed r12.1-1430-g8213da3ac0. I've not done a full rebuild of Mozilla etc because it's very unlikely such a patch release could break things.
comment:4 by , 2 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Note:
See TracTickets
for help on using tickets.

Rust 1.80.1 fixes two regressions that were recently reported.
Miscompilation when comparing floats
In addition to the existing optimizations performed by LLVM, rustc is growing its own set of optimizations. Rust 1.78.0 added a new one, implementing "jump threading" (merging together two adjacent branches that perform the same comparison).
The optimization was also enabled on branches checking for floating point equality, but it didn't implement the special rules needed for floats comparison (
NaN != NaNand0.0 == -0.0). This caused the optimization to miscompile code performing those checks.Rust 1.80.1 addresses the problem by preventing the optimization from being applied to float comparisons, while retaining the optimization on other supported types.
False positives in the
dead_codelintRust 1.80.0 contained refactorings to the
dead_codelint. We received multiple reports that the new lint implementation produces false positives, so we are reverting the changes in Rust 1.80.1. We'll continue to experiment on how to improve the accuracy ofdead_codein future releases.