[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