[Lldb-commits] [lldb] [lldb] Fix feature format in DisassemblerLLVMC constructor (PR #184355)
Georgiy Samoylov via lldb-commits
lldb-commits at lists.llvm.org
Thu Mar 5 00:40:23 PST 2026
https://github.com/sga-sc updated https://github.com/llvm/llvm-project/pull/184355
>From 7c4d4b7d26ee5186b972d3f328c2c048e8fdf6ab Mon Sep 17 00:00:00 2001
From: Georgiy Samoylov <Ignitor21838 at gmail.com>
Date: Tue, 3 Mar 2026 18:03:16 +0300
Subject: [PATCH] [lldb] Delete last comma from features
---
.../Disassembler/LLVMC/DisassemblerLLVMC.cpp | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp b/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
index 6384b5e1bb57c..d9804c2f8f9d2 100644
--- a/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
+++ b/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
@@ -1465,6 +1465,15 @@ bool DisassemblerLLVMC::MCDisasmInstance::IsAuthenticated(
return InstrDesc.isAuthenticated() || IsBrkC47x;
}
+static std::string& strip_trailing_comma(std::string& features_str)
+{
+ // We should delete the last comma from string.
+ if (!features_str.empty() && features_str.back() == ',')
+ features_str.pop_back();
+
+ return features_str;
+}
+
DisassemblerLLVMC::DisassemblerLLVMC(const ArchSpec &arch,
const char *flavor_string,
const char *cpu_string,
@@ -1620,7 +1629,7 @@ DisassemblerLLVMC::DisassemblerLLVMC(const ArchSpec &arch,
// We use m_disasm_up.get() to tell whether we are valid or not, so if this
// isn't good for some reason, we won't be valid and FindPlugin will fail and
// we won't get used.
- m_disasm_up = MCDisasmInstance::Create(triple_str, cpu, features_str.c_str(),
+ m_disasm_up = MCDisasmInstance::Create(triple_str, cpu, strip_trailing_comma(features_str).c_str(),
flavor, *this);
llvm::Triple::ArchType llvm_arch = triple.getArch();
@@ -1630,7 +1639,7 @@ DisassemblerLLVMC::DisassemblerLLVMC(const ArchSpec &arch,
if (llvm_arch == llvm::Triple::arm) {
std::string thumb_triple(thumb_arch.GetTriple().getTriple());
m_alternate_disasm_up = MCDisasmInstance::Create(
- thumb_triple.c_str(), "", features_str.c_str(), flavor, *this);
+ thumb_triple.c_str(), "", strip_trailing_comma(features_str).c_str(), flavor, *this);
if (!m_alternate_disasm_up)
m_disasm_up.reset();
@@ -1643,7 +1652,7 @@ DisassemblerLLVMC::DisassemblerLLVMC(const ArchSpec &arch,
features_str += "+micromips,";
m_alternate_disasm_up = MCDisasmInstance::Create(
- triple_str, cpu, features_str.c_str(), flavor, *this);
+ triple_str, cpu, strip_trailing_comma(features_str).c_str(), flavor, *this);
if (!m_alternate_disasm_up)
m_disasm_up.reset();
}
More information about the lldb-commits
mailing list