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

Reply via email to