gdb/gdb-symtab-keep-track-of-all-parents-for-cooked-inde.patch

39 lines
1.1 KiB
Diff

From be9718e911aff34896dcf1c3dfa41bfe34e5a9f4 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Thu, 7 Dec 2023 10:38:05 +0100
Subject: [PATCH 10/11] [gdb/symtab] Keep track of all parents for cooked index
Keep track of all parents for cooked index.
Tested on x86_64-linux.
---
gdb/dwarf2/read.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 39f6e480e19..e2d4fe8cde6 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -18626,9 +18626,15 @@ cooked_indexer::index_dies (cutu_reader *reader,
});
}
else
- this_entry = m_index_storage->add (this_die, abbrev->tag, flags,
- name, this_parent_entry,
- m_per_cu);
+ {
+ CORE_ADDR addr
+ = parent_map::form_addr (this_die, reader->cu->per_cu->is_dwz,
+ reader->cu->per_cu->is_debug_types);
+ set_parent (addr, addr, this_parent_entry);
+ this_entry = m_index_storage->add (this_die, abbrev->tag, flags,
+ name, this_parent_entry,
+ m_per_cu);
+ }
}
if (linkage_name != nullptr)
--
2.35.3