[PATCH v2 16/42] Remove dwarf2_per_cu_data::dwarf2_per_objfile reference in cutu_reader::keep

Simon Marchi
2020-05-12T21:12:28Z

Here, it should be safe to use dwarf2_per_cu_data->cu->per_objfile, as
we know that dwarf2_per_cu_data->cu will be set at this point.

Note that this adds a reference to dwarf2_per_cu_data::cu, which we'll
want to remove later, but the current focus is to remove references to
dwarf2_per_cu_data::dwarf2_per_objfile. We'll deal with that in a
subsequent patch.

gdb/ChangeLog:

* dwarf2/read.c (cutu_reader::keep): Access dwarf2_per_objfile
object through m_this_cu->cu.
---
gdb/dwarf2/read.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 3138e961bc9..d028e86c356 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -7124,8 +7124,11 @@ cutu_reader::keep ()
gdb_assert (!dummy_p);
if (m_new_cu != NULL)
{
- struct dwarf2_per_objfile *dwarf2_per_objfile
- = m_this_cu->dwarf2_per_objfile;
+ /* We know that m_this_cu->cu is set, since we are in the process of
+ parsing the CU. */
+ gdb_assert (m_this_cu->cu != nullptr);
+ dwarf2_per_objfile *dwarf2_per_objfile = m_this_cu->cu->per_objfile;
+
/* Link this CU into read_in_chain. */
m_this_cu->cu->read_in_chain = dwarf2_per_objfile->per_bfd->read_in_chain;
dwarf2_per_objfile->per_bfd->read_in_chain = m_this_cu;
--
2.26.2