[lldb] [llvm] [llvm][lldb] Handle oversized LEB128 operands in DWARF expressions (PR #219149)

Felipe de Azevedo Piovezan via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 31 05:12:34 PDT 2026


================
@@ -214,17 +271,26 @@ bool DWARFExpression::Operation::extract(DataExtractor Data,
           Data.getUnsigned(&Offset, dwarf::getDwarfOffsetByteSize(*Format));
       break;
     case Operation::SizeLEB:
-      if (Signed)
-        Operands[Operand] = Data.getSLEB128(&Offset);
-      else
-        Operands[Operand] = Data.getULEB128(&Offset);
+      if (Opcode == DW_OP_constu || Opcode == DW_OP_consts) {
+        if (std::optional<uint64_t> Value = extractGenericConstant(
+                Data, Offset, AddressSize, /*Signed=*/Signed))
+          Operands[Operand] = *Value;
+        else {
+          OperandError = true;
+          return false;
+        }
+      } else if (!ExtractLEBOperand(Signed)) {
+        return false;
----------------
felipepiovezan wrote:

is this PR fixing multiple issues at once?

https://github.com/llvm/llvm-project/pull/219149


More information about the llvm-commits mailing list