Skip to content

Commit 29f9ab2

Browse files
committed
add reference to floating-point semantics issue
1 parent 5e0a06d commit 29f9ab2

File tree

4 files changed

+4
-0
lines changed

4 files changed

+4
-0
lines changed

library/core/src/num/f16.rs

+1
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,7 @@ impl f16 {
435435
// WASM, see llvm/llvm-project#96437). These are platforms bugs, and Rust will misbehave on
436436
// such platforms, but we can at least try to make things seem as sane as possible by being
437437
// careful here.
438+
// Cc https://github.com/rust-lang/rust/issues/114479
438439
if self.is_infinite() {
439440
// Thus, a value may compare unequal to infinity, despite having a "full" exponent mask.
440441
FpCategory::Infinite

library/core/src/num/f32.rs

+1
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,7 @@ impl f32 {
662662
// hardware flushes subnormals to zero. These are platforms bugs, and Rust will misbehave on
663663
// such hardware, but we can at least try to make things seem as sane as possible by being
664664
// careful here.
665+
// Cc https://github.com/rust-lang/rust/issues/114479
665666
if self.is_infinite() {
666667
// A value may compare unequal to infinity, despite having a "full" exponent mask.
667668
FpCategory::Infinite

library/core/src/num/f64.rs

+1
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,7 @@ impl f64 {
660660
// float semantics Rust relies on: x87 uses a too-large exponent, and some hardware flushes
661661
// subnormals to zero. These are platforms bugs, and Rust will misbehave on such hardware,
662662
// but we can at least try to make things seem as sane as possible by being careful here.
663+
// Cc https://github.com/rust-lang/rust/issues/114479
663664
//
664665
// Thus, a value may compare unequal to infinity, despite having a "full" exponent mask.
665666
// And it may not be NaN, as it can simply be an "overextended" finite value.

tests/ui/numbers-arithmetic/issue-105626.rs

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ fn main() {
1111
assert_ne!((n as f64) as f32, n as f32);
1212

1313
// FIXME: these assertions fail if only x87 is enabled
14+
// Cc https://github.com/rust-lang/rust/issues/114479
1415
assert_eq!(n as i64 as f32, r);
1516
assert_eq!(n as u64 as f32, r);
1617
}

0 commit comments

Comments
 (0)