diff options
| author | Amanieu d'Antras <amanieu@gmail.com> | 2022-08-28 06:38:01 +0800 |
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2022-08-28 06:38:01 +0800 |
| commit | a7e4794c2effd128a223ce3df0816637ac0a8d7c (patch) | |
| tree | 916b15bfd12cc9c0519b38fdb815742aecfca906 /compiler/rustc_codegen_ssa/src/back | |
| parent | d8c81485d85c4f60659e5d0a059db76c3efbee34 (diff) | |
| download | rust-a7e4794c2effd128a223ce3df0816637ac0a8d7c.tar.gz rust-a7e4794c2effd128a223ce3df0816637ac0a8d7c.zip | |
Fix handling of rust_eh_personality in reachable_non_generics
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/back')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/symbol_export.rs | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/symbol_export.rs b/compiler/rustc_codegen_ssa/src/back/symbol_export.rs index e6b6055759d..32b340832ce 100644 --- a/compiler/rustc_codegen_ssa/src/back/symbol_export.rs +++ b/compiler/rustc_codegen_ssa/src/back/symbol_export.rs @@ -103,18 +103,14 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, cnum: CrateNum) -> DefIdMap< } }) .map(|def_id| { - let (export_level, used) = if special_runtime_crate { - let name = tcx.symbol_name(Instance::mono(tcx, def_id.to_def_id())).name; - // We won't link right if these symbols are stripped during LTO. - let used = match name { - "rust_eh_personality" - | "rust_eh_register_frames" - | "rust_eh_unregister_frames" => true, - _ => false, - }; - (SymbolExportLevel::Rust, used) + // We won't link right if this symbol is stripped during LTO. + let name = tcx.symbol_name(Instance::mono(tcx, def_id.to_def_id())).name; + let used = name == "rust_eh_personality"; + + let export_level = if special_runtime_crate { + SymbolExportLevel::Rust } else { - (symbol_export_level(tcx, def_id.to_def_id()), false) + symbol_export_level(tcx, def_id.to_def_id()) }; let codegen_attrs = tcx.codegen_fn_attrs(def_id.to_def_id()); debug!( |
