Skip to content

Commit 5d7db7e

Browse files
committed
Fixed a core crate compilation failure when enabling the optimize_for_size feature on some targets
1 parent 855e0fe commit 5d7db7e

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

library/core/src/fmt/num.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ macro_rules! impl_Display {
358358
}
359359
#[cfg(feature = "optimize_for_size")]
360360
{
361-
offset = _inner_slow_integer_to_str(self.unsigned_abs().$conv_fn(), &mut buf.buf);
361+
offset = ${concat(_inner_slow_integer_to_str, $gen_name)}(self.unsigned_abs().$conv_fn(), &mut buf.buf);
362362
}
363363
// Only difference between signed and unsigned are these 4 lines.
364364
if self < 0 {
@@ -401,7 +401,7 @@ macro_rules! impl_Display {
401401
}
402402
#[cfg(feature = "optimize_for_size")]
403403
{
404-
offset = _inner_slow_integer_to_str(self.$conv_fn(), &mut buf.buf);
404+
offset = ${concat(_inner_slow_integer_to_str, $gen_name)}(self.$conv_fn(), &mut buf.buf);
405405
}
406406
// SAFETY: Starting from `offset`, all elements of the slice have been set.
407407
unsafe { slice_buffer_to_str(&buf.buf, offset) }
@@ -412,7 +412,7 @@ macro_rules! impl_Display {
412412
)*
413413

414414
#[cfg(feature = "optimize_for_size")]
415-
fn _inner_slow_integer_to_str(mut n: $u, buf: &mut [MaybeUninit::<u8>]) -> usize {
415+
fn ${concat(_inner_slow_integer_to_str, $gen_name)}(mut n: $u, buf: &mut [MaybeUninit::<u8>]) -> usize {
416416
let mut curr = buf.len();
417417

418418
// SAFETY: To show that it's OK to copy into `buf_ptr`, notice that at the beginning
@@ -437,7 +437,7 @@ macro_rules! impl_Display {
437437
const MAX_DEC_N: usize = $u::MAX.ilog(10) as usize + 1;
438438
let mut buf = [MaybeUninit::<u8>::uninit(); MAX_DEC_N];
439439

440-
let offset = _inner_slow_integer_to_str(n, &mut buf);
440+
let offset = ${concat(_inner_slow_integer_to_str, $gen_name)}(n, &mut buf);
441441
// SAFETY: Starting from `offset`, all elements of the slice have been set.
442442
let buf_slice = unsafe { slice_buffer_to_str(&buf, offset) };
443443
f.pad_integral(is_nonnegative, "", buf_slice)

library/core/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@
160160
#![feature(lang_items)]
161161
#![feature(link_llvm_intrinsics)]
162162
#![feature(macro_metavar_expr)]
163+
#![feature(macro_metavar_expr_concat)]
163164
#![feature(marker_trait_attr)]
164165
#![feature(min_specialization)]
165166
#![feature(multiple_supertrait_upcastable)]

0 commit comments

Comments
 (0)