[Lldb-commits] [lldb] [lldb] Zero extend APInt when piece size is bigger than the bitwidth (PR #150149)

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Thu Jul 24 10:21:32 PDT 2025


================
@@ -1978,7 +1978,12 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
             // grows to the nearest host integer type.
             llvm::APInt fail_value(1, 0, false);
             llvm::APInt ap_int = scalar.UInt128(fail_value);
-            assert(ap_int.getBitWidth() >= bit_size);
+            // We have seen a case where we have expression like:
+            //      DW_OP_lit0, DW_OP_stack_value, DW_OP_piece 0x28
+            // here we are assuming the compiler was trying to zero
+            // extend the value that we should append to the buffer.
+            if (ap_int.getBitWidth() < bit_size)
----------------
clayborg wrote:

No, APInt and APSInt classes can handle any sized integers.

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


More information about the lldb-commits mailing list