about summary refs log tree commit diff
path: root/compiler/rustc_monomorphize
diff options
context:
space:
mode:
authorDiggory Blake <diggsey@googlemail.com>2025-05-25 20:16:44 +0100
committerDiggory Blake <diggsey@googlemail.com>2025-05-26 23:29:26 +0100
commitfdb660e8514ad09ebd9a478516d66b924c839f55 (patch)
treeb87dff7e804402cd83d35eae4ff5d9ad79595ad9 /compiler/rustc_monomorphize
parent88b3b520e852e01970c3f519339ba64ed3e7db6d (diff)
downloadrust-fdb660e8514ad09ebd9a478516d66b924c839f55.tar.gz
rust-fdb660e8514ad09ebd9a478516d66b924c839f55.zip
Limit the size of cgu names when using the `-Zhuman-readable-cgu-names` option
Prior to this change, cgu names could be generated which would result in
filenames longer than the limit imposed by the OS.
Diffstat (limited to 'compiler/rustc_monomorphize')
-rw-r--r--compiler/rustc_monomorphize/src/partitioning.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/rustc_monomorphize/src/partitioning.rs b/compiler/rustc_monomorphize/src/partitioning.rs
index b4169a060d4..49025673bbd 100644
--- a/compiler/rustc_monomorphize/src/partitioning.rs
+++ b/compiler/rustc_monomorphize/src/partitioning.rs
@@ -461,15 +461,15 @@ fn merge_codegen_units<'tcx>(
 
         for cgu in codegen_units.iter_mut() {
             if let Some(new_cgu_name) = new_cgu_names.get(&cgu.name()) {
-                if cx.tcx.sess.opts.unstable_opts.human_readable_cgu_names {
-                    cgu.set_name(Symbol::intern(new_cgu_name));
+                let new_cgu_name = if cx.tcx.sess.opts.unstable_opts.human_readable_cgu_names {
+                    Symbol::intern(&CodegenUnit::shorten_name(new_cgu_name))
                 } else {
                     // If we don't require CGU names to be human-readable,
                     // we use a fixed length hash of the composite CGU name
                     // instead.
-                    let new_cgu_name = CodegenUnit::mangle_name(new_cgu_name);
-                    cgu.set_name(Symbol::intern(&new_cgu_name));
-                }
+                    Symbol::intern(&CodegenUnit::mangle_name(new_cgu_name))
+                };
+                cgu.set_name(new_cgu_name);
             }
         }