https://github.com/sga-sc updated https://github.com/llvm/llvm-project/pull/184355
>From 3e75ac1a28c1faf7d3366642393a2a0b48e239c5 Mon Sep 17 00:00:00 2001 From: Georgiy Samoylov <[email protected]> Date: Tue, 3 Mar 2026 18:03:16 +0300 Subject: [PATCH] [lldb] Delete last comma from features --- .../Disassembler/LLVMC/DisassemblerLLVMC.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp b/lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp index 6384b5e1bb57c..a2d6b870a6684 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(); @@ -1638,12 +1647,12 @@ DisassemblerLLVMC::DisassemblerLLVMC(const ArchSpec &arch, /* Create alternate disassembler for MIPS16 and microMIPS */ uint32_t arch_flags = arch.GetFlags(); if (arch_flags & ArchSpec::eMIPSAse_mips16) - features_str += "+mips16,"; + features_str += ",+mips16"; else if (arch_flags & ArchSpec::eMIPSAse_micromips) - features_str += "+micromips,"; + 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(); } _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
