about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJubilee Young <workingjubilee@gmail.com>2024-03-21 17:28:32 -0700
committerJubilee Young <workingjubilee@gmail.com>2024-03-21 17:35:20 -0700
commit861e47000f8bb35c76290c28f86757a4f5463c6c (patch)
treefb81621c70369b6f577d619165f620f37413bbab
parent7d01878bd0d1c4383c1158adeff0c392446ea3a2 (diff)
downloadrust-861e47000f8bb35c76290c28f86757a4f5463c6c.tar.gz
rust-861e47000f8bb35c76290c28f86757a4f5463c6c.zip
Fix Itanium mangling usizes
Arrays, surprisingly, are not sized to u64 on all platforms.
-rw-r--r--compiler/rustc_symbol_mangling/src/typeid/typeid_itanium_cxx_abi.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_symbol_mangling/src/typeid/typeid_itanium_cxx_abi.rs b/compiler/rustc_symbol_mangling/src/typeid/typeid_itanium_cxx_abi.rs
index 51e2c96120c..c5ae08e284e 100644
--- a/compiler/rustc_symbol_mangling/src/typeid/typeid_itanium_cxx_abi.rs
+++ b/compiler/rustc_symbol_mangling/src/typeid/typeid_itanium_cxx_abi.rs
@@ -525,8 +525,8 @@ fn encode_ty<'tcx>(
                 "{}",
                 &len.try_to_scalar()
                     .unwrap()
-                    .to_u64()
-                    .unwrap_or_else(|_| panic!("failed to convert length to u64"))
+                    .to_target_usize(&tcx.data_layout)
+                    .expect("Array lens are defined in usize")
             );
             s.push_str(&encode_ty(tcx, *ty0, dict, options));
             compress(dict, DictKey::Ty(ty, TyQ::None), &mut s);