about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorWeihang Lo <me@weihanglo.tw>2023-12-11 16:24:24 -0500
committerWeihang Lo <me@weihanglo.tw>2023-12-11 16:24:24 -0500
commit6aac62cdcb9ba84dddca920e8528dd4d62d78801 (patch)
treec0c196201f90b84c677e7f5ad46c8def00793c46 /compiler/rustc_codegen_llvm/src
parent1667f3d2cc131e1f39d4314296b7cafa9dbfa0f4 (diff)
downloadrust-6aac62cdcb9ba84dddca920e8528dd4d62d78801.tar.gz
rust-6aac62cdcb9ba84dddca920e8528dd4d62d78801.zip
refactor: only check dwarf version when emitting dwarf
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
-rw-r--r--compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs10
1 files 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::FileName;
 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(