[Lldb-commits] [lldb] [LLDB][NativePDB] Add non-overlapping fields in root struct (PR #166243)

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Tue Nov 4 14:56:07 PST 2025


================
@@ -462,8 +466,23 @@ void UdtRecordCompleter::Record::ConstructRecord() {
       }
       if (iter->second.empty())
         continue;
-      parent = iter->second.back();
-      iter->second.pop_back();
+
+      // If the new fields come after the already added ones
+      // without overlap, go back to the root.
+      if (iter->first <= offset && is_last_end_offset(iter)) {
+        if (record.kind == Member::Struct)
+          parent = &record;
+        else {
+          lldbassert(record.kind == Member::Union &&
+                     "Current record must be a union");
+          lldbassert(!record.fields.empty());
----------------
JDevlieghere wrote:

Per https://lldb.llvm.org/resources/contributing.html#error-handling, we'd rather not add new uses of `lldbassert`. If these are proper preconditions, they can be converted to regular asserts. 

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


More information about the lldb-commits mailing list