about summary refs log tree commit diff
path: root/library/core/src
diff options
context:
space:
mode:
authorLeón Orell Valerian Liehr <me@fmease.dev>2025-07-17 03:58:31 +0200
committerGitHub <noreply@github.com>2025-07-17 03:58:31 +0200
commitac98b4e733d498ce7452ea8d2a2b7f8010cb5e40 (patch)
tree3a2bfac07f2ad9c3734e0e1c4170e6d18439fee4 /library/core/src
parentfe420b05e39450c35d65fc6cc536e16d84025eb2 (diff)
parent5d7db7e16ec5af85c39138dd7c669bc2219d1507 (diff)
downloadrust-ac98b4e733d498ce7452ea8d2a2b7f8010cb5e40.tar.gz
rust-ac98b4e733d498ce7452ea8d2a2b7f8010cb5e40.zip
Rollup merge of #143820 - nazo6:fix-optimize-for-size, r=Mark-Simulacrum
Fixed a core crate compilation failure when enabling the `optimize_for_size` feature on some targets

This fixes rust-lang/rust#143804.
Diffstat (limited to 'library/core/src')
-rw-r--r--library/core/src/fmt/num.rs8
-rw-r--r--library/core/src/lib.rs1
2 files changed, 5 insertions, 4 deletions
diff --git a/library/core/src/fmt/num.rs b/library/core/src/fmt/num.rs
index e1381ace441..7d41ae45093 100644
--- a/library/core/src/fmt/num.rs
+++ b/library/core/src/fmt/num.rs
@@ -358,7 +358,7 @@ macro_rules! impl_Display {
                 }
                 #[cfg(feature = "optimize_for_size")]
                 {
-                    offset = _inner_slow_integer_to_str(self.unsigned_abs().$conv_fn(), &mut buf.buf);
+                    offset = ${concat(_inner_slow_integer_to_str, $gen_name)}(self.unsigned_abs().$conv_fn(), &mut buf.buf);
                 }
                 // Only difference between signed and unsigned are these 4 lines.
                 if self < 0 {
@@ -401,7 +401,7 @@ macro_rules! impl_Display {
                 }
                 #[cfg(feature = "optimize_for_size")]
                 {
-                    offset = _inner_slow_integer_to_str(self.$conv_fn(), &mut buf.buf);
+                    offset = ${concat(_inner_slow_integer_to_str, $gen_name)}(self.$conv_fn(), &mut buf.buf);
                 }
                 // SAFETY: Starting from `offset`, all elements of the slice have been set.
                 unsafe { slice_buffer_to_str(&buf.buf, offset) }
@@ -412,7 +412,7 @@ macro_rules! impl_Display {
         )*
 
         #[cfg(feature = "optimize_for_size")]
-        fn _inner_slow_integer_to_str(mut n: $u, buf: &mut [MaybeUninit::<u8>]) -> usize {
+        fn ${concat(_inner_slow_integer_to_str, $gen_name)}(mut n: $u, buf: &mut [MaybeUninit::<u8>]) -> usize {
             let mut curr = buf.len();
 
             // 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 {
             const MAX_DEC_N: usize = $u::MAX.ilog(10) as usize + 1;
             let mut buf = [MaybeUninit::<u8>::uninit(); MAX_DEC_N];
 
-            let offset = _inner_slow_integer_to_str(n, &mut buf);
+            let offset = ${concat(_inner_slow_integer_to_str, $gen_name)}(n, &mut buf);
             // SAFETY: Starting from `offset`, all elements of the slice have been set.
             let buf_slice = unsafe { slice_buffer_to_str(&buf, offset) };
             f.pad_integral(is_nonnegative, "", buf_slice)
diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs
index 2f701171505..e08edde3b38 100644
--- a/library/core/src/lib.rs
+++ b/library/core/src/lib.rs
@@ -160,6 +160,7 @@
 #![feature(lang_items)]
 #![feature(link_llvm_intrinsics)]
 #![feature(macro_metavar_expr)]
+#![feature(macro_metavar_expr_concat)]
 #![feature(marker_trait_attr)]
 #![feature(min_specialization)]
 #![feature(multiple_supertrait_upcastable)]