Skip to content

Commit f5a053b

Browse files
Rollup merge of rust-lang#82676 - dtolnay:powers, r=Mark-Simulacrum
Change twice used large const table to static This table is used twice in core::num::dec2flt::algorithm::power_of_ten. According to the semantics of const, a separate huge definition of the table is inlined at both places. https://github.com/rust-lang/rust/blob/5233edcf1c7ee70ac25e4ec1115c3546f53d8a2d/library/core/src/num/dec2flt/algorithm.rs#L16-L22 Theoretically this gets cleaned up by optimization passes, but in practice I am experiencing a miscompile from LTO on this code. Making the table a static, which would only be defined a single time and not require attention from LTO, eliminates the miscompile and seems semantically more appropriate anyway. A separate bug report on the LTO bug is forthcoming. Original addition of `const` is from rust-lang#27307.
2 parents 34a60c1 + 89fe06c commit f5a053b

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

core/src/num/dec2flt/table.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ pub const MIN_E: i16 = -305;
55
pub const MAX_E: i16 = 305;
66

77
#[rustfmt::skip]
8-
pub const POWERS: ([u64; 611], [i16; 611]) = (
8+
pub static POWERS: ([u64; 611], [i16; 611]) = (
99
[
1010
0xe0b62e2929aba83c,
1111
0x8c71dcd9ba0b4926,

0 commit comments

Comments
 (0)