From 6aac62cdcb9ba84dddca920e8528dd4d62d78801 Mon Sep 17 00:00:00 2001 From: Weihang Lo Date: Mon, 11 Dec 2023 16:24:24 -0500 Subject: [PATCH] refactor: only check dwarf version when emitting dwarf --- compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs b/compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs index 0f807ee6e57..acd5a1ff5c6 100644 --- a/compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs +++ b/compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs @@ -39,6 +39,7 @@ use rustc_span::{FileNameDisplayPreference, SourceFile}; use rustc_symbol_mangling::typeid_for_trait_ref; use rustc_target::abi::{Align, Size}; +use rustc_target::spec::DebuginfoKind; use smallvec::smallvec; use libc::{c_char, c_longlong, c_uint}; @@ -881,9 +882,14 @@ pub fn build_compile_unit_di_node<'ll, 'tcx>( let dwarf_version = tcx.sess.opts.unstable_opts.dwarf_version.unwrap_or(tcx.sess.target.default_dwarf_version); + let is_dwarf_kind = + matches!(tcx.sess.target.debuginfo_kind, DebuginfoKind::Dwarf | DebuginfoKind::DwarfDsym); // Don't emit `.debug_pubnames` and `.debug_pubtypes` on DWARFv4 or lower. - let debug_name_table_kind = - if dwarf_version > 4 { DebugNameTableKind::Default } else { DebugNameTableKind::None }; + let debug_name_table_kind = if is_dwarf_kind && dwarf_version <= 4 { + DebugNameTableKind::None + } else { + DebugNameTableKind::Default + }; unsafe { let compile_unit_file = llvm::LLVMRustDIBuilderCreateFile(