================
@@ -463,7 +467,14 @@ void UdtRecordCompleter::Record::ConstructRecord() {
if (iter->second.empty())
continue;
parent = iter->second.back();
- iter->second.pop_back();
+
+ // For structs, if the new fields come after the already added ones
+ // without overlap, go back to the root struct.
+ if (parent != &record && iter->first <= offset &&
+ record.kind == Member::Struct && is_last_end_offset(iter))
+ parent = &record;
+ else
+ iter->second.pop_back();
----------------
ZequanWu wrote:
```suggestion
// For structs, if the new fields come after the already added ones
// without overlap, go back to the root struct.
if (iter->first <= offset &&
record.kind == Member::Struct && is_last_end_offset(iter))
parent = &record;
else {
parent = iter->second.back();
iter->second.pop_back();
}
```
Maybe move `parent = iter->second.back();` into the else branch.
https://github.com/llvm/llvm-project/pull/166243
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits