diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2020-05-27 11:13:59 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2020-05-27 11:15:56 -0400 |
commit | 4ab09049d65fbda8637400bde3d39761ae512404 (patch) | |
tree | 1804c6345a8267627579e29511848854f479ce41 /gdb/acinclude.m4 | |
parent | 47b14e8676aa8a4d91f9e3af02aed3a4be00186a (diff) | |
download | binutils-4ab09049d65fbda8637400bde3d39761ae512404.zip binutils-4ab09049d65fbda8637400bde3d39761ae512404.tar.gz binutils-4ab09049d65fbda8637400bde3d39761ae512404.tar.bz2 |
Pass dwarf2_cu objects to dwo-related functions, instead of dwarf2_per_cu_data
This allows removing references to the
dwarf2_per_cu_data::dwarf2_per_objfile field.
I am not too sure of the code flow here, but ultimately
open_and_init_dwo_file calls create_cus_hash_table, and passes it
per_cu->cu. create_cus_hash_table requires a dwarf2_cu to pass to
cutu_reader, as the "parent_cu".
The dwarf2_per_cu_data::cu link is only set when in a certain context.
It's not easy to convince myself in which situations it's safe to use
it. Instead, if a function is going to use a dwarf2_cu, I think it's
simpler if it takes that object directly. If it needs access to the
corresponding dwarf2_per_cu_data object, then it can used the
dwarf2_cu::per_cu field, which we know is always set.
This patch adds some references to dwarf2_per_cu_data::cu in the
cutu_reader context. In this context, we know this field will be set,
as it's cutu_reader that is responsible for instantiating the dwarf2_cu
and assigning the field.
gdb/ChangeLog:
* dwarf2/read.c (lookup_dwo_comp_unit): Change
dwarf2_per_cu_data parameter fo dwarf2_cu.
(lookup_dwo_type_unit): Likewise.
(read_cutu_die_from_dwo): Likewise.
(lookup_dwo_unit): Likewise.
(open_and_init_dwo_file): Likewise.
(lookup_dwo_cutu): Likewise.
(lookup_dwo_comp_unit): Likewise.
(lookup_dwo_type_unit): Likewise.
(cutu_reader::init_tu_and_read_dwo_dies): Update.
(cutu_reader::cutu_reader): Update.
Change-Id: I0406a715b0797963bde2bd86237f159cbece5839
Diffstat (limited to 'gdb/acinclude.m4')
0 files changed, 0 insertions, 0 deletions