https://github.com/Michael137 updated https://github.com/llvm/llvm-project/pull/161804
>From 159ee47db1b9f6f609fe8b6b3e866f995d8f2e5c Mon Sep 17 00:00:00 2001 From: Michael Buch <[email protected]> Date: Fri, 3 Oct 2025 09:37:52 +0100 Subject: [PATCH 1/2] [lldb][Language] Simplify SourceLanguage::GetDescription Currently we don't benefit from the user-friendly names that `LanguageDescription` returns because we would always use `Language::GetNameForLanguageType`. I'm not aware of a situation where `GetDescription` should prefer the non-human readable form of the name with. This patch removes the call to `GetNameForLanguageType`. --- lldb/source/Target/Language.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lldb/source/Target/Language.cpp b/lldb/source/Target/Language.cpp index 484d9badde397..7ce85dd93f091 100644 --- a/lldb/source/Target/Language.cpp +++ b/lldb/source/Target/Language.cpp @@ -559,11 +559,8 @@ lldb::LanguageType SourceLanguage::AsLanguageType() const { } llvm::StringRef SourceLanguage::GetDescription() const { - LanguageType type = AsLanguageType(); - if (type) - return Language::GetNameForLanguageType(type); return llvm::dwarf::LanguageDescription( - (llvm::dwarf::SourceLanguageName)name); + static_cast<llvm::dwarf::SourceLanguageName>(name)); } bool SourceLanguage::IsC() const { return name == llvm::dwarf::DW_LNAME_C; } >From 89bda0883c6332dbd348bd8e6bf0d74000aef3c1 Mon Sep 17 00:00:00 2001 From: Michael Buch <[email protected]> Date: Fri, 3 Oct 2025 10:21:15 +0100 Subject: [PATCH 2/2] fixup! handle non-standard languages --- lldb/source/Target/Language.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lldb/source/Target/Language.cpp b/lldb/source/Target/Language.cpp index 7ce85dd93f091..69090669a1383 100644 --- a/lldb/source/Target/Language.cpp +++ b/lldb/source/Target/Language.cpp @@ -542,9 +542,20 @@ Language::Language() = default; // Destructor Language::~Language() = default; + +static llvm::dwarf::SourceLanguage ToDwarfSourceLanguage(lldb::LanguageType language_type) { + if (language_type < lldb::eLanguageTypeLastStandardLanguage) + return static_cast<llvm::dwarf::SourceLanguage>(language_type); + + switch (language_type) { + case eLanguageTypeMipsAssembler: return llvm::dwarf::DW_LANG_Mips_Assembler; + default: return llvm::dwarf::DW_LANG_hi_user; + } +} + SourceLanguage::SourceLanguage(lldb::LanguageType language_type) { auto lname = - llvm::dwarf::toDW_LNAME((llvm::dwarf::SourceLanguage)language_type); + llvm::dwarf::toDW_LNAME(ToDwarfSourceLanguage(language_type)); if (!lname) return; name = lname->first; _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
