[Lldb-commits] [lldb] [lldb][Language] Simplify SourceLanguage::GetDescription (PR #161804)
Michael Buch via lldb-commits
lldb-commits at lists.llvm.org
Fri Oct 3 02:21:25 PDT 2025
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 <michaelbuch12 at gmail.com>
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 <michaelbuch12 at gmail.com>
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;
More information about the lldb-commits
mailing list