aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2020-05-27 11:13:56 -0400
committerSimon Marchi <simon.marchi@efficios.com>2020-05-27 11:15:55 -0400
commite3beb21d3521e7f5ba8b40732ea1bfe3cafd9033 (patch)
treebe3efb2d6712d7788a4692ad876add55aeb2e453
parentd460f6600a4452b09ee875519ebc70362863fcba (diff)
downloadgdb-e3beb21d3521e7f5ba8b40732ea1bfe3cafd9033.zip
gdb-e3beb21d3521e7f5ba8b40732ea1bfe3cafd9033.tar.gz
gdb-e3beb21d3521e7f5ba8b40732ea1bfe3cafd9033.tar.bz2
Remove dwarf2_per_cu_data::dwarf2_per_objfile reference in cutu_reader::keep
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. Change-Id: I8dc26d4db021e0b9e9306eb033965b2704bba87c
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/dwarf2/read.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 952722f..e5f20d3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-27 Simon Marchi <simon.marchi@efficios.com>
+
+ * dwarf2/read.c (cutu_reader::keep): Access dwarf2_per_objfile
+ object through m_this_cu->cu.
+
2020-05-27 Simon Marchi <simon.marchi@polymtl.ca>
* dwarf2/read.c (queue_and_load_dwo_tu): Expect a dwarf2_cu as
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 64cf5f4..d583030 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -7162,8 +7162,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;