Remove dwarf2_cu::dwarf2_per_objfile

This patch removes the dwarf2_per_objfile field of dwarf2_cu.  It is
redundant, since we can access dwarf2_per_objfile through
dwarf2_per_objfile, which is guaranteed to be set.

gdb/ChangeLog:

	* dwarf2read.c (struct dwarf2_cu) <dwarf2_per_objfile>: Remove.
	(dw2_get_file_names_reader): Adjust.
	(lookup_dwo_signatured_type): Adjust.
	(lookup_dwp_signatured_type): Adjust.
	(lookup_signatured_type): Adjust.
	(create_type_unit_group): Adjust.
	(get_type_unit_group): Adjust.
	(process_psymtab_comp_unit_reader): Adjust.
	(build_type_psymtabs_reader): Adjust.
	(scan_partial_symbols): Adjust.
	(add_partial_symbol): Adjust.
	(add_partial_subprogram): Adjust.
	(peek_die_abbrev): Adjust.
	(fixup_go_packaging): Adjust.
	(process_imported_unit_die): Adjust.
	(dwarf2_compute_name): Adjust.
	(dwarf2_physname): Adjust.
	(read_import_statement): Adjust.
	(handle_DW_AT_stmt_list): Adjust.
	(read_file_scope): Adjust.
	(read_func_scope): Adjust.
	(read_lexical_block_scope): Adjust.
	(read_call_site_scope): Adjust.
	(read_variable): Adjust.
	(dwarf2_rnglists_process): Adjust.
	(dwarf2_ranges_process): Adjust.
	(dwarf2_ranges_read): Adjust.
	(dwarf2_get_pc_bounds): Adjust.
	(dwarf2_record_block_ranges): Adjust.
	(dwarf2_add_field): Adjust.
	(dwarf2_add_member_fn): Adjust.
	(read_structure_type): Adjust.
	(process_structure_scope): Adjust.
	(read_enumeration_type): Adjust.
	(read_array_type): Adjust.
	(mark_common_block_symbol_computed): Adjust.
	(read_common_block): Adjust.
	(read_namespace_type): Adjust.
	(read_namespace): Adjust.
	(read_module_type): Adjust.
	(read_tag_pointer_type): Adjust.
	(read_tag_ptr_to_member_type): Adjust.
	(read_tag_string_type): Adjust.
	(read_subroutine_type): Adjust.
	(read_typedef): Adjust.
	(read_base_type): Adjust.
	(attr_to_dynamic_prop): Adjust.
	(read_subrange_type): Adjust.
	(read_unspecified_type): Adjust.
	(dwarf2_read_abbrevs): Adjust.
	(load_partial_dies): Adjust.
	(read_partial_die): Adjust.
	(find_partial_die): Adjust.
	(guess_partial_die_structure_name): Adjust.
	(fixup_partial_die): Adjust.
	(read_attribute_value): Adjust.
	(read_addr_index): Adjust.
	(read_addr_index_from_leb128): Adjust.
	(read_str_index): Adjust.
	(dwarf2_string_attr): Adjust.
	(get_debug_line_section): Adjust.
	(dwarf_decode_line_header): Adjust.
	(lnp_state_machine::check_line_address): Adjust.
	(dwarf_decode_lines_1): Adjust.
	(dwarf_decode_lines): Adjust.
	(dwarf2_start_symtab): Adjust.
	(var_decode_location): Adjust.
	(new_symbol_full): Adjust.
	(dwarf2_const_value_data): Adjust.
	(dwarf2_const_value_attr): Adjust.
	(dwarf2_const_value): Adjust.
	(die_type): Adjust.
	(die_containing_type): Adjust.
	(build_error_marker_type): Adjust.
	(lookup_die_type): Adjust.
	(guess_full_die_structure_name): Adjust.
	(anonymous_struct_prefix): Adjust.
	(determine_prefix): Adjust.
	(dwarf2_name): Adjust.
	(follow_die_ref_or_sig): Adjust.
	(follow_die_offset): Adjust.
	(follow_die_ref): Adjust.
	(follow_die_sig_1): Adjust.
	(follow_die_sig): Adjust.
	(get_signatured_type): Adjust.
	(get_DW_AT_signature_type): Adjust.
	(decode_locdesc): Adjust.
	(dwarf_decode_macros): Adjust.
	(cu_debug_loc_section): Adjust.
	(fill_in_loclist_baton): Adjust.
	(dwarf2_symbol_mark_computed): Adjust.
	(init_one_comp_unit): Don't assign
	dwarf2_cu::dwarf2_per_objfile.
	(set_die_type): Adjust.
This commit is contained in:
Simon Marchi 2018-01-07 11:22:46 -05:00 committed by Simon Marchi
parent ed2dc618b3
commit 518817b361
2 changed files with 237 additions and 107 deletions

View File

@ -1,3 +1,100 @@
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
* dwarf2read.c (struct dwarf2_cu) <dwarf2_per_objfile>: Remove.
(dw2_get_file_names_reader): Adjust.
(lookup_dwo_signatured_type): Adjust.
(lookup_dwp_signatured_type): Adjust.
(lookup_signatured_type): Adjust.
(create_type_unit_group): Adjust.
(get_type_unit_group): Adjust.
(process_psymtab_comp_unit_reader): Adjust.
(build_type_psymtabs_reader): Adjust.
(scan_partial_symbols): Adjust.
(add_partial_symbol): Adjust.
(add_partial_subprogram): Adjust.
(peek_die_abbrev): Adjust.
(fixup_go_packaging): Adjust.
(process_imported_unit_die): Adjust.
(dwarf2_compute_name): Adjust.
(dwarf2_physname): Adjust.
(read_import_statement): Adjust.
(handle_DW_AT_stmt_list): Adjust.
(read_file_scope): Adjust.
(read_func_scope): Adjust.
(read_lexical_block_scope): Adjust.
(read_call_site_scope): Adjust.
(read_variable): Adjust.
(dwarf2_rnglists_process): Adjust.
(dwarf2_ranges_process): Adjust.
(dwarf2_ranges_read): Adjust.
(dwarf2_get_pc_bounds): Adjust.
(dwarf2_record_block_ranges): Adjust.
(dwarf2_add_field): Adjust.
(dwarf2_add_member_fn): Adjust.
(read_structure_type): Adjust.
(process_structure_scope): Adjust.
(read_enumeration_type): Adjust.
(read_array_type): Adjust.
(mark_common_block_symbol_computed): Adjust.
(read_common_block): Adjust.
(read_namespace_type): Adjust.
(read_namespace): Adjust.
(read_module_type): Adjust.
(read_tag_pointer_type): Adjust.
(read_tag_ptr_to_member_type): Adjust.
(read_tag_string_type): Adjust.
(read_subroutine_type): Adjust.
(read_typedef): Adjust.
(read_base_type): Adjust.
(attr_to_dynamic_prop): Adjust.
(read_subrange_type): Adjust.
(read_unspecified_type): Adjust.
(dwarf2_read_abbrevs): Adjust.
(load_partial_dies): Adjust.
(read_partial_die): Adjust.
(find_partial_die): Adjust.
(guess_partial_die_structure_name): Adjust.
(fixup_partial_die): Adjust.
(read_attribute_value): Adjust.
(read_addr_index): Adjust.
(read_addr_index_from_leb128): Adjust.
(read_str_index): Adjust.
(dwarf2_string_attr): Adjust.
(get_debug_line_section): Adjust.
(dwarf_decode_line_header): Adjust.
(lnp_state_machine::check_line_address): Adjust.
(dwarf_decode_lines_1): Adjust.
(dwarf_decode_lines): Adjust.
(dwarf2_start_symtab): Adjust.
(var_decode_location): Adjust.
(new_symbol_full): Adjust.
(dwarf2_const_value_data): Adjust.
(dwarf2_const_value_attr): Adjust.
(dwarf2_const_value): Adjust.
(die_type): Adjust.
(die_containing_type): Adjust.
(build_error_marker_type): Adjust.
(lookup_die_type): Adjust.
(guess_full_die_structure_name): Adjust.
(anonymous_struct_prefix): Adjust.
(determine_prefix): Adjust.
(dwarf2_name): Adjust.
(follow_die_ref_or_sig): Adjust.
(follow_die_offset): Adjust.
(follow_die_ref): Adjust.
(follow_die_sig_1): Adjust.
(follow_die_sig): Adjust.
(get_signatured_type): Adjust.
(get_DW_AT_signature_type): Adjust.
(decode_locdesc): Adjust.
(dwarf_decode_macros): Adjust.
(cu_debug_loc_section): Adjust.
(fill_in_loclist_baton): Adjust.
(dwarf2_symbol_mark_computed): Adjust.
(init_one_comp_unit): Don't assign
dwarf2_cu::dwarf2_per_objfile.
(set_die_type): Adjust.
2018-01-07 Simon Marchi <simon.marchi@ericsson.com> 2018-01-07 Simon Marchi <simon.marchi@ericsson.com>
* dwarf2read.c (struct mapped_debug_names): Add constructor. * dwarf2read.c (struct mapped_debug_names): Add constructor.

View File

@ -661,9 +661,6 @@ DEF_VEC_O (delayed_method_info);
/* Internal state when decoding a particular compilation unit. */ /* Internal state when decoding a particular compilation unit. */
struct dwarf2_cu struct dwarf2_cu
{ {
/* The dwarf2_per_objfile containing this compilation unit. */
struct dwarf2_per_objfile *dwarf2_per_objfile;
/* The header of the compilation unit. */ /* The header of the compilation unit. */
struct comp_unit_head header; struct comp_unit_head header;
@ -3931,7 +3928,8 @@ dw2_get_file_names_reader (const struct die_reader_specs *reader,
{ {
struct dwarf2_cu *cu = reader->cu; struct dwarf2_cu *cu = reader->cu;
struct dwarf2_per_cu_data *this_cu = cu->per_cu; struct dwarf2_per_cu_data *this_cu = cu->per_cu;
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct dwarf2_per_cu_data *lh_cu; struct dwarf2_per_cu_data *lh_cu;
struct attribute *attr; struct attribute *attr;
@ -7272,7 +7270,8 @@ fill_in_sig_entry_from_dwo_entry (struct dwarf2_per_objfile *dwarf2_per_objfile,
static struct signatured_type * static struct signatured_type *
lookup_dwo_signatured_type (struct dwarf2_cu *cu, ULONGEST sig) lookup_dwo_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct dwo_file *dwo_file; struct dwo_file *dwo_file;
struct dwo_unit find_dwo_entry, *dwo_entry; struct dwo_unit find_dwo_entry, *dwo_entry;
@ -7341,7 +7340,8 @@ lookup_dwo_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
static struct signatured_type * static struct signatured_type *
lookup_dwp_signatured_type (struct dwarf2_cu *cu, ULONGEST sig) lookup_dwp_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct dwp_file *dwp_file = get_dwp_file (dwarf2_per_objfile); struct dwp_file *dwp_file = get_dwp_file (dwarf2_per_objfile);
struct dwo_unit *dwo_entry; struct dwo_unit *dwo_entry;
@ -7390,7 +7390,8 @@ lookup_dwp_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
static struct signatured_type * static struct signatured_type *
lookup_signatured_type (struct dwarf2_cu *cu, ULONGEST sig) lookup_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
if (cu->dwo_unit if (cu->dwo_unit
&& dwarf2_per_objfile->using_index) && dwarf2_per_objfile->using_index)
@ -8181,7 +8182,8 @@ allocate_type_unit_groups_table (struct objfile *objfile)
static struct type_unit_group * static struct type_unit_group *
create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct) create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct dwarf2_per_cu_data *per_cu; struct dwarf2_per_cu_data *per_cu;
struct type_unit_group *tu_group; struct type_unit_group *tu_group;
@ -8189,7 +8191,7 @@ create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct)
tu_group = OBSTACK_ZALLOC (&objfile->objfile_obstack, tu_group = OBSTACK_ZALLOC (&objfile->objfile_obstack,
struct type_unit_group); struct type_unit_group);
per_cu = &tu_group->per_cu; per_cu = &tu_group->per_cu;
per_cu->dwarf2_per_objfile = cu->dwarf2_per_objfile; per_cu->dwarf2_per_objfile = dwarf2_per_objfile;
if (dwarf2_per_objfile->using_index) if (dwarf2_per_objfile->using_index)
{ {
@ -8227,7 +8229,8 @@ create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct)
static struct type_unit_group * static struct type_unit_group *
get_type_unit_group (struct dwarf2_cu *cu, const struct attribute *stmt_list) get_type_unit_group (struct dwarf2_cu *cu, const struct attribute *stmt_list)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct tu_stats *tu_stats = &dwarf2_per_objfile->tu_stats; struct tu_stats *tu_stats = &dwarf2_per_objfile->tu_stats;
struct type_unit_group *tu_group; struct type_unit_group *tu_group;
void **slot; void **slot;
@ -8332,7 +8335,7 @@ process_psymtab_comp_unit_reader (const struct die_reader_specs *reader,
void *data) void *data)
{ {
struct dwarf2_cu *cu = reader->cu; struct dwarf2_cu *cu = reader->cu;
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct dwarf2_per_cu_data *per_cu = cu->per_cu; struct dwarf2_per_cu_data *per_cu = cu->per_cu;
CORE_ADDR baseaddr; CORE_ADDR baseaddr;
@ -8495,7 +8498,7 @@ build_type_psymtabs_reader (const struct die_reader_specs *reader,
void *data) void *data)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile struct dwarf2_per_objfile *dwarf2_per_objfile
= reader->cu->dwarf2_per_objfile; = reader->cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct dwarf2_cu *cu = reader->cu; struct dwarf2_cu *cu = reader->cu;
struct dwarf2_per_cu_data *per_cu = cu->per_cu; struct dwarf2_per_cu_data *per_cu = cu->per_cu;
@ -9114,12 +9117,12 @@ scan_partial_symbols (struct partial_die_info *first_die, CORE_ADDR *lowpc,
{ {
error (_("Dwarf Error: DW_TAG_imported_unit is not" error (_("Dwarf Error: DW_TAG_imported_unit is not"
" supported in type units [in module %s]"), " supported in type units [in module %s]"),
objfile_name (cu->dwarf2_per_objfile->objfile)); objfile_name (cu->per_cu->dwarf2_per_objfile->objfile));
} }
per_cu = dwarf2_find_containing_comp_unit per_cu = dwarf2_find_containing_comp_unit
(pdi->d.sect_off, pdi->is_dwz, (pdi->d.sect_off, pdi->is_dwz,
cu->dwarf2_per_objfile); cu->per_cu->dwarf2_per_objfile);
/* Go read the partial unit, if needed. */ /* Go read the partial unit, if needed. */
if (per_cu->v.psymtab == NULL) if (per_cu->v.psymtab == NULL)
@ -9281,7 +9284,8 @@ partial_die_full_name (struct partial_die_info *pdi,
static void static void
add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu) add_partial_symbol (struct partial_die_info *pdi, struct dwarf2_cu *cu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
CORE_ADDR addr = 0; CORE_ADDR addr = 0;
@ -9524,7 +9528,7 @@ add_partial_subprogram (struct partial_die_info *pdi,
*highpc = pdi->highpc; *highpc = pdi->highpc;
if (set_addrmap) if (set_addrmap)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
CORE_ADDR baseaddr; CORE_ADDR baseaddr;
CORE_ADDR highpc; CORE_ADDR highpc;
@ -9610,7 +9614,7 @@ static struct abbrev_info *
peek_die_abbrev (const gdb_byte *info_ptr, unsigned int *bytes_read, peek_die_abbrev (const gdb_byte *info_ptr, unsigned int *bytes_read,
struct dwarf2_cu *cu) struct dwarf2_cu *cu)
{ {
bfd *abfd = cu->dwarf2_per_objfile->objfile->obfd; bfd *abfd = cu->per_cu->dwarf2_per_objfile->objfile->obfd;
unsigned int abbrev_number; unsigned int abbrev_number;
struct abbrev_info *abbrev; struct abbrev_info *abbrev;
@ -10279,7 +10283,8 @@ fixup_go_packaging (struct dwarf2_cu *cu)
package_name = this_package_name; package_name = this_package_name;
else else
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile
= cu->per_cu->dwarf2_per_objfile->objfile;
if (strcmp (package_name, this_package_name) != 0) if (strcmp (package_name, this_package_name) != 0)
complaint (&symfile_complaints, complaint (&symfile_complaints,
_("Symtab %s has objects from two different Go packages: %s and %s"), _("Symtab %s has objects from two different Go packages: %s and %s"),
@ -10296,7 +10301,7 @@ fixup_go_packaging (struct dwarf2_cu *cu)
if (package_name != NULL) if (package_name != NULL)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
const char *saved_package_name const char *saved_package_name
= (const char *) obstack_copy0 (&objfile->per_bfd->storage_obstack, = (const char *) obstack_copy0 (&objfile->per_bfd->storage_obstack,
package_name, package_name,
@ -10657,7 +10662,7 @@ process_imported_unit_die (struct die_info *die, struct dwarf2_cu *cu)
{ {
error (_("Dwarf Error: DW_TAG_imported_unit is not" error (_("Dwarf Error: DW_TAG_imported_unit is not"
" supported in type units [in module %s]"), " supported in type units [in module %s]"),
objfile_name (cu->dwarf2_per_objfile->objfile)); objfile_name (cu->per_cu->dwarf2_per_objfile->objfile));
} }
attr = dwarf2_attr (die, DW_AT_import, cu); attr = dwarf2_attr (die, DW_AT_import, cu);
@ -10667,7 +10672,7 @@ process_imported_unit_die (struct die_info *die, struct dwarf2_cu *cu)
bool is_dwz = (attr->form == DW_FORM_GNU_ref_alt || cu->per_cu->is_dwz); bool is_dwz = (attr->form == DW_FORM_GNU_ref_alt || cu->per_cu->is_dwz);
dwarf2_per_cu_data *per_cu dwarf2_per_cu_data *per_cu
= dwarf2_find_containing_comp_unit (sect_off, is_dwz, = dwarf2_find_containing_comp_unit (sect_off, is_dwz,
cu->dwarf2_per_objfile); cu->per_cu->dwarf2_per_objfile);
/* If necessary, add it to the queue and load its DIEs. */ /* If necessary, add it to the queue and load its DIEs. */
if (maybe_queue_comp_unit (cu, per_cu, cu->language)) if (maybe_queue_comp_unit (cu, per_cu, cu->language))
@ -10924,7 +10929,7 @@ dwarf2_compute_name (const char *name,
struct die_info *die, struct dwarf2_cu *cu, struct die_info *die, struct dwarf2_cu *cu,
int physname) int physname)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
if (name == NULL) if (name == NULL)
name = dwarf2_name (die, cu); name = dwarf2_name (die, cu);
@ -11173,7 +11178,7 @@ dwarf2_full_name (const char *name, struct die_info *die, struct dwarf2_cu *cu)
static const char * static const char *
dwarf2_physname (const char *name, struct die_info *die, struct dwarf2_cu *cu) dwarf2_physname (const char *name, struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
const char *retval, *mangled = NULL, *canon = NULL; const char *retval, *mangled = NULL, *canon = NULL;
int need_copy = 1; int need_copy = 1;
@ -11347,7 +11352,7 @@ using_directives (enum language language)
static void static void
read_import_statement (struct die_info *die, struct dwarf2_cu *cu) read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct attribute *import_attr; struct attribute *import_attr;
struct die_info *imported_die, *child_die; struct die_info *imported_die, *child_die;
struct dwarf2_cu *imported_cu; struct dwarf2_cu *imported_cu;
@ -11554,7 +11559,8 @@ static void
handle_DW_AT_stmt_list (struct die_info *die, struct dwarf2_cu *cu, handle_DW_AT_stmt_list (struct die_info *die, struct dwarf2_cu *cu,
const char *comp_dir, CORE_ADDR lowpc) /* ARI: editCase function */ const char *comp_dir, CORE_ADDR lowpc) /* ARI: editCase function */
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct attribute *attr; struct attribute *attr;
struct line_header line_header_local; struct line_header line_header_local;
@ -11653,7 +11659,8 @@ handle_DW_AT_stmt_list (struct die_info *die, struct dwarf2_cu *cu,
static void static void
read_file_scope (struct die_info *die, struct dwarf2_cu *cu) read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
CORE_ADDR lowpc = ((CORE_ADDR) -1); CORE_ADDR lowpc = ((CORE_ADDR) -1);
@ -13799,7 +13806,7 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
static void static void
read_func_scope (struct die_info *die, struct dwarf2_cu *cu) read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct context_stack *newobj; struct context_stack *newobj;
CORE_ADDR lowpc; CORE_ADDR lowpc;
@ -13990,7 +13997,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
static void static void
read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu) read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct context_stack *newobj; struct context_stack *newobj;
CORE_ADDR lowpc, highpc; CORE_ADDR lowpc, highpc;
@ -14061,7 +14068,7 @@ read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu)
static void static void
read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu) read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
CORE_ADDR pc, baseaddr; CORE_ADDR pc, baseaddr;
struct attribute *attr; struct attribute *attr;
@ -14215,7 +14222,7 @@ read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu)
struct die_info *target_die; struct die_info *target_die;
target_die = follow_die_ref (die, attr, &target_cu); target_die = follow_die_ref (die, attr, &target_cu);
gdb_assert (target_cu->dwarf2_per_objfile->objfile == objfile); gdb_assert (target_cu->per_cu->dwarf2_per_objfile->objfile == objfile);
if (die_is_declaration (target_die, target_cu)) if (die_is_declaration (target_die, target_cu))
{ {
const char *target_physname; const char *target_physname;
@ -14417,7 +14424,7 @@ read_variable (struct die_info *die, struct dwarf2_cu *cu)
if (containing_type != NULL) if (containing_type != NULL)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
storage = OBSTACK_ZALLOC (&objfile->objfile_obstack, storage = OBSTACK_ZALLOC (&objfile->objfile_obstack,
struct rust_vtable_symbol); struct rust_vtable_symbol);
@ -14443,7 +14450,7 @@ dwarf2_rnglists_process (unsigned offset, struct dwarf2_cu *cu,
Callback &&callback) Callback &&callback)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->dwarf2_per_objfile; = cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
bfd *obfd = objfile->obfd; bfd *obfd = objfile->obfd;
/* Base address selection entry. */ /* Base address selection entry. */
@ -14611,7 +14618,7 @@ dwarf2_ranges_process (unsigned offset, struct dwarf2_cu *cu,
Callback &&callback) Callback &&callback)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->dwarf2_per_objfile; = cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct comp_unit_head *cu_header = &cu->header; struct comp_unit_head *cu_header = &cu->header;
bfd *obfd = objfile->obfd; bfd *obfd = objfile->obfd;
@ -14719,7 +14726,7 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return,
CORE_ADDR *high_return, struct dwarf2_cu *cu, CORE_ADDR *high_return, struct dwarf2_cu *cu,
struct partial_symtab *ranges_pst) struct partial_symtab *ranges_pst)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
const CORE_ADDR baseaddr = ANOFFSET (objfile->section_offsets, const CORE_ADDR baseaddr = ANOFFSET (objfile->section_offsets,
SECT_OFF_TEXT (objfile)); SECT_OFF_TEXT (objfile));
@ -14786,7 +14793,8 @@ dwarf2_get_pc_bounds (struct die_info *die, CORE_ADDR *lowpc,
CORE_ADDR *highpc, struct dwarf2_cu *cu, CORE_ADDR *highpc, struct dwarf2_cu *cu,
struct partial_symtab *pst) struct partial_symtab *pst)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct attribute *attr; struct attribute *attr;
struct attribute *attr_high; struct attribute *attr_high;
CORE_ADDR low = 0; CORE_ADDR low = 0;
@ -14961,7 +14969,7 @@ static void
dwarf2_record_block_ranges (struct die_info *die, struct block *block, dwarf2_record_block_ranges (struct die_info *die, struct block *block,
CORE_ADDR baseaddr, struct dwarf2_cu *cu) CORE_ADDR baseaddr, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct attribute *attr; struct attribute *attr;
struct attribute *attr_high; struct attribute *attr_high;
@ -15145,7 +15153,7 @@ static void
dwarf2_add_field (struct field_info *fip, struct die_info *die, dwarf2_add_field (struct field_info *fip, struct die_info *die,
struct dwarf2_cu *cu) struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct nextfield *new_field; struct nextfield *new_field;
struct attribute *attr; struct attribute *attr;
@ -15544,7 +15552,7 @@ static void
dwarf2_add_member_fn (struct field_info *fip, struct die_info *die, dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
struct type *type, struct dwarf2_cu *cu) struct type *type, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct attribute *attr; struct attribute *attr;
struct fnfieldlist *flp; struct fnfieldlist *flp;
int i; int i;
@ -15856,7 +15864,7 @@ quirk_gcc_member_function_pointer (struct type *type, struct objfile *objfile)
static struct type * static struct type *
read_structure_type (struct die_info *die, struct dwarf2_cu *cu) read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct type *type; struct type *type;
struct attribute *attr; struct attribute *attr;
const char *name; const char *name;
@ -15979,7 +15987,7 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
static void static void
process_structure_scope (struct die_info *die, struct dwarf2_cu *cu) process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct die_info *child_die; struct die_info *child_die;
struct type *type; struct type *type;
@ -16279,7 +16287,7 @@ update_enumeration_type_from_children (struct die_info *die,
static struct type * static struct type *
read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu) read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct type *type; struct type *type;
struct attribute *attr; struct attribute *attr;
const char *name; const char *name;
@ -16451,7 +16459,7 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
static struct type * static struct type *
read_array_type (struct die_info *die, struct dwarf2_cu *cu) read_array_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct die_info *child_die; struct die_info *child_die;
struct type *type; struct type *type;
struct type *element_type, *range_type, *index_type; struct type *element_type, *range_type, *index_type;
@ -16481,7 +16489,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
_("unable to read array DW_AT_byte_stride " _("unable to read array DW_AT_byte_stride "
" - DIE at 0x%x [in module %s]"), " - DIE at 0x%x [in module %s]"),
to_underlying (die->sect_off), to_underlying (die->sect_off),
objfile_name (cu->dwarf2_per_objfile->objfile)); objfile_name (cu->per_cu->dwarf2_per_objfile->objfile));
/* Ignore this attribute. We will likely not be able to print /* Ignore this attribute. We will likely not be able to print
arrays of this type correctly, but there is little we can do arrays of this type correctly, but there is little we can do
to help if we cannot read the attribute's value. */ to help if we cannot read the attribute's value. */
@ -16654,7 +16662,8 @@ mark_common_block_symbol_computed (struct symbol *sym,
struct attribute *member_loc, struct attribute *member_loc,
struct dwarf2_cu *cu) struct dwarf2_cu *cu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct dwarf2_locexpr_baton *baton; struct dwarf2_locexpr_baton *baton;
gdb_byte *ptr; gdb_byte *ptr;
@ -16744,7 +16753,7 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
if (die->child != NULL) if (die->child != NULL)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct die_info *child_die; struct die_info *child_die;
size_t n_entries = 0, size; size_t n_entries = 0, size;
struct common_block *common_block; struct common_block *common_block;
@ -16789,7 +16798,7 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
"DW_AT_data_member_location " "DW_AT_data_member_location "
"- DIE at 0x%x [in module %s]"), "- DIE at 0x%x [in module %s]"),
to_underlying (child_die->sect_off), to_underlying (child_die->sect_off),
objfile_name (cu->dwarf2_per_objfile->objfile)); objfile_name (objfile));
if (attr_form_is_section_offset (member_loc)) if (attr_form_is_section_offset (member_loc))
dwarf2_complex_location_expr_complaint (); dwarf2_complex_location_expr_complaint ();
@ -16816,7 +16825,7 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
static struct type * static struct type *
read_namespace_type (struct die_info *die, struct dwarf2_cu *cu) read_namespace_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
const char *previous_prefix, *name; const char *previous_prefix, *name;
int is_anonymous; int is_anonymous;
struct type *type; struct type *type;
@ -16856,7 +16865,7 @@ read_namespace_type (struct die_info *die, struct dwarf2_cu *cu)
static void static void
read_namespace (struct die_info *die, struct dwarf2_cu *cu) read_namespace (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
int is_anonymous; int is_anonymous;
/* Add a symbol associated to this if we haven't seen the namespace /* Add a symbol associated to this if we haven't seen the namespace
@ -16901,7 +16910,7 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu)
static struct type * static struct type *
read_module_type (struct die_info *die, struct dwarf2_cu *cu) read_module_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
const char *module_name; const char *module_name;
struct type *type; struct type *type;
@ -16975,7 +16984,8 @@ namespace_name (struct die_info *die, int *is_anonymous, struct dwarf2_cu *cu)
static struct type * static struct type *
read_tag_pointer_type (struct die_info *die, struct dwarf2_cu *cu) read_tag_pointer_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct gdbarch *gdbarch = get_objfile_arch (cu->dwarf2_per_objfile->objfile); struct gdbarch *gdbarch
= get_objfile_arch (cu->per_cu->dwarf2_per_objfile->objfile);
struct comp_unit_head *cu_header = &cu->header; struct comp_unit_head *cu_header = &cu->header;
struct type *type; struct type *type;
struct attribute *attr_byte_size; struct attribute *attr_byte_size;
@ -17056,7 +17066,8 @@ read_tag_ptr_to_member_type (struct die_info *die, struct dwarf2_cu *cu)
type = lookup_methodptr_type (to_type); type = lookup_methodptr_type (to_type);
else if (TYPE_CODE (check_typedef (to_type)) == TYPE_CODE_FUNC) else if (TYPE_CODE (check_typedef (to_type)) == TYPE_CODE_FUNC)
{ {
struct type *new_type = alloc_type (cu->dwarf2_per_objfile->objfile); struct type *new_type
= alloc_type (cu->per_cu->dwarf2_per_objfile->objfile);
smash_to_method_type (new_type, domain, TYPE_TARGET_TYPE (to_type), smash_to_method_type (new_type, domain, TYPE_TARGET_TYPE (to_type),
TYPE_FIELDS (to_type), TYPE_NFIELDS (to_type), TYPE_FIELDS (to_type), TYPE_NFIELDS (to_type),
@ -17219,7 +17230,7 @@ read_tag_atomic_type (struct die_info *die, struct dwarf2_cu *cu)
static struct type * static struct type *
read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct type *type, *range_type, *index_type, *char_type; struct type *type, *range_type, *index_type, *char_type;
struct attribute *attr; struct attribute *attr;
@ -17297,7 +17308,7 @@ prototyped_function_p (struct die_info *die, struct dwarf2_cu *cu)
static struct type * static struct type *
read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu) read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct type *type; /* Type that this function returns. */ struct type *type; /* Type that this function returns. */
struct type *ftype; /* Function that returns above type. */ struct type *ftype; /* Function that returns above type. */
struct attribute *attr; struct attribute *attr;
@ -17434,7 +17445,7 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
static struct type * static struct type *
read_typedef (struct die_info *die, struct dwarf2_cu *cu) read_typedef (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
const char *name = NULL; const char *name = NULL;
struct type *this_type, *target_type; struct type *this_type, *target_type;
@ -17485,7 +17496,7 @@ dwarf2_init_float_type (struct objfile *objfile, int bits, const char *name,
static struct type * static struct type *
read_base_type (struct die_info *die, struct dwarf2_cu *cu) read_base_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct type *type; struct type *type;
struct attribute *attr; struct attribute *attr;
int encoding = 0, bits = 0; int encoding = 0, bits = 0;
@ -17597,7 +17608,8 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
struct dwarf2_cu *cu, struct dynamic_prop *prop) struct dwarf2_cu *cu, struct dynamic_prop *prop)
{ {
struct dwarf2_property_baton *baton; struct dwarf2_property_baton *baton;
struct obstack *obstack = &cu->dwarf2_per_objfile->objfile->objfile_obstack; struct obstack *obstack
= &cu->per_cu->dwarf2_per_objfile->objfile->objfile_obstack;
if (attr == NULL || prop == NULL) if (attr == NULL || prop == NULL)
return 0; return 0;
@ -17759,7 +17771,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
complaint (&symfile_complaints, _("Missing DW_AT_lower_bound " complaint (&symfile_complaints, _("Missing DW_AT_lower_bound "
"- DIE at 0x%x [in module %s]"), "- DIE at 0x%x [in module %s]"),
to_underlying (die->sect_off), to_underlying (die->sect_off),
objfile_name (cu->dwarf2_per_objfile->objfile)); objfile_name (cu->per_cu->dwarf2_per_objfile->objfile));
attr = dwarf2_attr (die, DW_AT_upper_bound, cu); attr = dwarf2_attr (die, DW_AT_upper_bound, cu);
if (!attr_to_dynamic_prop (attr, die, cu, &high)) if (!attr_to_dynamic_prop (attr, die, cu, &high))
@ -17789,7 +17801,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
high bound or count are not yet handled by this code. */ high bound or count are not yet handled by this code. */
if (TYPE_CODE (base_type) == TYPE_CODE_VOID) if (TYPE_CODE (base_type) == TYPE_CODE_VOID)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
int addr_size = gdbarch_addr_bit (gdbarch) /8; int addr_size = gdbarch_addr_bit (gdbarch) /8;
struct type *int_type = objfile_type (objfile)->builtin_int; struct type *int_type = objfile_type (objfile)->builtin_int;
@ -17859,7 +17871,8 @@ read_unspecified_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct type *type; struct type *type;
type = init_type (cu->dwarf2_per_objfile->objfile, TYPE_CODE_VOID, 0, NULL); type = init_type (cu->per_cu->dwarf2_per_objfile->objfile, TYPE_CODE_VOID,0,
NULL);
TYPE_NAME (type) = dwarf2_name (die, cu); TYPE_NAME (type) = dwarf2_name (die, cu);
/* In Ada, an unspecified type is typically used when the description /* In Ada, an unspecified type is typically used when the description
@ -18253,7 +18266,7 @@ dwarf2_read_abbrevs (struct dwarf2_cu *cu,
struct dwarf2_section_info *abbrev_section) struct dwarf2_section_info *abbrev_section)
{ {
cu->abbrev_table = cu->abbrev_table =
abbrev_table_read_table (cu->dwarf2_per_objfile, abbrev_section, abbrev_table_read_table (cu->per_cu->dwarf2_per_objfile, abbrev_section,
cu->header.abbrev_sect_off); cu->header.abbrev_sect_off);
} }
@ -18310,7 +18323,7 @@ load_partial_dies (const struct die_reader_specs *reader,
const gdb_byte *info_ptr, int building_psymtab) const gdb_byte *info_ptr, int building_psymtab)
{ {
struct dwarf2_cu *cu = reader->cu; struct dwarf2_cu *cu = reader->cu;
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct partial_die_info *part_die; struct partial_die_info *part_die;
struct partial_die_info *parent_die, *last_die, *first_die = NULL; struct partial_die_info *parent_die, *last_die, *first_die = NULL;
struct abbrev_info *abbrev; struct abbrev_info *abbrev;
@ -18587,7 +18600,8 @@ read_partial_die (const struct die_reader_specs *reader,
const gdb_byte *info_ptr) const gdb_byte *info_ptr)
{ {
struct dwarf2_cu *cu = reader->cu; struct dwarf2_cu *cu = reader->cu;
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
const gdb_byte *buffer = reader->buffer; const gdb_byte *buffer = reader->buffer;
unsigned int i; unsigned int i;
@ -18825,7 +18839,8 @@ find_partial_die_in_comp_unit (sect_offset sect_off, struct dwarf2_cu *cu)
static struct partial_die_info * static struct partial_die_info *
find_partial_die (sect_offset sect_off, int offset_in_dwz, struct dwarf2_cu *cu) find_partial_die (sect_offset sect_off, int offset_in_dwz, struct dwarf2_cu *cu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct dwarf2_per_cu_data *per_cu = NULL; struct dwarf2_per_cu_data *per_cu = NULL;
struct partial_die_info *pd = NULL; struct partial_die_info *pd = NULL;
@ -18927,7 +18942,7 @@ guess_partial_die_structure_name (struct partial_die_info *struct_pdi,
child_pdi->linkage_name); child_pdi->linkage_name);
if (actual_class_name != NULL) if (actual_class_name != NULL)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct_pdi->name struct_pdi->name
= ((const char *) = ((const char *)
obstack_copy0 (&objfile->per_bfd->storage_obstack, obstack_copy0 (&objfile->per_bfd->storage_obstack,
@ -18984,7 +18999,8 @@ fixup_partial_die (struct partial_die_info *part_die,
children, see if we can determine the namespace from their linkage children, see if we can determine the namespace from their linkage
name. */ name. */
if (cu->language == language_cplus if (cu->language == language_cplus
&& !VEC_empty (dwarf2_section_info_def, cu->dwarf2_per_objfile->types) && !VEC_empty (dwarf2_section_info_def,
cu->per_cu->dwarf2_per_objfile->types)
&& part_die->die_parent == NULL && part_die->die_parent == NULL
&& part_die->has_children && part_die->has_children
&& (part_die->tag == DW_TAG_class_type && (part_die->tag == DW_TAG_class_type
@ -19016,7 +19032,7 @@ fixup_partial_die (struct partial_die_info *part_die,
else else
base = demangled; base = demangled;
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
part_die->name part_die->name
= ((const char *) = ((const char *)
obstack_copy0 (&objfile->per_bfd->storage_obstack, obstack_copy0 (&objfile->per_bfd->storage_obstack,
@ -19036,7 +19052,8 @@ read_attribute_value (const struct die_reader_specs *reader,
LONGEST implicit_const, const gdb_byte *info_ptr) LONGEST implicit_const, const gdb_byte *info_ptr)
{ {
struct dwarf2_cu *cu = reader->cu; struct dwarf2_cu *cu = reader->cu;
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
bfd *abfd = reader->abfd; bfd *abfd = reader->abfd;
@ -19737,8 +19754,8 @@ read_addr_index_1 (struct dwarf2_per_objfile *dwarf2_per_objfile,
static CORE_ADDR static CORE_ADDR
read_addr_index (struct dwarf2_cu *cu, unsigned int addr_index) read_addr_index (struct dwarf2_cu *cu, unsigned int addr_index)
{ {
return read_addr_index_1 (cu->dwarf2_per_objfile, addr_index, cu->addr_base, return read_addr_index_1 (cu->per_cu->dwarf2_per_objfile, addr_index,
cu->header.addr_size); cu->addr_base, cu->header.addr_size);
} }
/* Given a pointer to an leb128 value, fetch the value from .debug_addr. */ /* Given a pointer to an leb128 value, fetch the value from .debug_addr. */
@ -19747,7 +19764,7 @@ static CORE_ADDR
read_addr_index_from_leb128 (struct dwarf2_cu *cu, const gdb_byte *info_ptr, read_addr_index_from_leb128 (struct dwarf2_cu *cu, const gdb_byte *info_ptr,
unsigned int *bytes_read) unsigned int *bytes_read)
{ {
bfd *abfd = cu->dwarf2_per_objfile->objfile->obfd; bfd *abfd = cu->per_cu->dwarf2_per_objfile->objfile->obfd;
unsigned int addr_index = read_unsigned_leb128 (abfd, info_ptr, bytes_read); unsigned int addr_index = read_unsigned_leb128 (abfd, info_ptr, bytes_read);
return read_addr_index (cu, addr_index); return read_addr_index (cu, addr_index);
@ -19838,7 +19855,8 @@ static const char *
read_str_index (const struct die_reader_specs *reader, ULONGEST str_index) read_str_index (const struct die_reader_specs *reader, ULONGEST str_index)
{ {
struct dwarf2_cu *cu = reader->cu; struct dwarf2_cu *cu = reader->cu;
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
const char *objf_name = objfile_name (objfile); const char *objf_name = objfile_name (objfile);
bfd *abfd = objfile->obfd; bfd *abfd = objfile->obfd;
@ -20021,7 +20039,7 @@ dwarf2_string_attr (struct die_info *die, unsigned int name, struct dwarf2_cu *c
_("string type expected for attribute %s for " _("string type expected for attribute %s for "
"DIE at 0x%x in module %s"), "DIE at 0x%x in module %s"),
dwarf_attr_name (name), to_underlying (die->sect_off), dwarf_attr_name (name), to_underlying (die->sect_off),
objfile_name (cu->dwarf2_per_objfile->objfile)); objfile_name (cu->per_cu->dwarf2_per_objfile->objfile));
} }
return str; return str;
@ -20113,7 +20131,8 @@ static struct dwarf2_section_info *
get_debug_line_section (struct dwarf2_cu *cu) get_debug_line_section (struct dwarf2_cu *cu)
{ {
struct dwarf2_section_info *section; struct dwarf2_section_info *section;
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
/* For TUs in DWO files, the DW_AT_stmt_list attribute lives in the /* For TUs in DWO files, the DW_AT_stmt_list attribute lives in the
DWO file. */ DWO file. */
@ -20280,7 +20299,8 @@ dwarf_decode_line_header (sect_offset sect_off, struct dwarf2_cu *cu)
const char *cur_dir, *cur_file; const char *cur_dir, *cur_file;
struct dwarf2_section_info *section; struct dwarf2_section_info *section;
bfd *abfd; bfd *abfd;
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
section = get_debug_line_section (cu); section = get_debug_line_section (cu);
dwarf2_read_section (dwarf2_per_objfile->objfile, section); dwarf2_read_section (dwarf2_per_objfile->objfile, section);
@ -20913,7 +20933,7 @@ lnp_state_machine::check_line_address (struct dwarf2_cu *cu,
/* This line table is for a function which has been /* This line table is for a function which has been
GCd by the linker. Ignore it. PR gdb/12528 */ GCd by the linker. Ignore it. PR gdb/12528 */
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
long line_offset = line_ptr - get_debug_line_section (cu)->buffer; long line_offset = line_ptr - get_debug_line_section (cu)->buffer;
complaint (&symfile_complaints, complaint (&symfile_complaints,
@ -20939,7 +20959,7 @@ dwarf_decode_lines_1 (struct line_header *lh, struct dwarf2_cu *cu,
unsigned int bytes_read, extended_len; unsigned int bytes_read, extended_len;
unsigned char op_code, extended_op; unsigned char op_code, extended_op;
CORE_ADDR baseaddr; CORE_ADDR baseaddr;
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
bfd *abfd = objfile->obfd; bfd *abfd = objfile->obfd;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
/* True if we're recording line info (as opposed to building partial /* True if we're recording line info (as opposed to building partial
@ -21170,7 +21190,7 @@ dwarf_decode_lines (struct line_header *lh, const char *comp_dir,
struct dwarf2_cu *cu, struct partial_symtab *pst, struct dwarf2_cu *cu, struct partial_symtab *pst,
CORE_ADDR lowpc, int decode_mapping) CORE_ADDR lowpc, int decode_mapping)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
const int decode_for_pst_p = (pst != NULL); const int decode_for_pst_p = (pst != NULL);
if (decode_mapping) if (decode_mapping)
@ -21270,8 +21290,8 @@ dwarf2_start_symtab (struct dwarf2_cu *cu,
const char *name, const char *comp_dir, CORE_ADDR low_pc) const char *name, const char *comp_dir, CORE_ADDR low_pc)
{ {
struct compunit_symtab *cust struct compunit_symtab *cust
= start_symtab (cu->dwarf2_per_objfile->objfile, name, comp_dir, low_pc, = start_symtab (cu->per_cu->dwarf2_per_objfile->objfile, name, comp_dir,
cu->language); low_pc, cu->language);
record_debugformat ("DWARF 2"); record_debugformat ("DWARF 2");
record_producer (cu->producer); record_producer (cu->producer);
@ -21288,7 +21308,7 @@ static void
var_decode_location (struct attribute *attr, struct symbol *sym, var_decode_location (struct attribute *attr, struct symbol *sym,
struct dwarf2_cu *cu) struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct comp_unit_head *cu_header = &cu->header; struct comp_unit_head *cu_header = &cu->header;
/* NOTE drow/2003-01-30: There used to be a comment and some special /* NOTE drow/2003-01-30: There used to be a comment and some special
@ -21361,7 +21381,8 @@ static struct symbol *
new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu, new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
struct symbol *space) struct symbol *space)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct symbol *sym = NULL; struct symbol *sym = NULL;
@ -21760,7 +21781,7 @@ static gdb_byte *
dwarf2_const_value_data (const struct attribute *attr, struct obstack *obstack, dwarf2_const_value_data (const struct attribute *attr, struct obstack *obstack,
struct dwarf2_cu *cu, LONGEST *value, int bits) struct dwarf2_cu *cu, LONGEST *value, int bits)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
enum bfd_endian byte_order = bfd_big_endian (objfile->obfd) ? enum bfd_endian byte_order = bfd_big_endian (objfile->obfd) ?
BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE; BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
LONGEST l = DW_UNSND (attr); LONGEST l = DW_UNSND (attr);
@ -21795,7 +21816,7 @@ dwarf2_const_value_attr (const struct attribute *attr, struct type *type,
LONGEST *value, const gdb_byte **bytes, LONGEST *value, const gdb_byte **bytes,
struct dwarf2_locexpr_baton **baton) struct dwarf2_locexpr_baton **baton)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
struct comp_unit_head *cu_header = &cu->header; struct comp_unit_head *cu_header = &cu->header;
struct dwarf_block *blk; struct dwarf_block *blk;
enum bfd_endian byte_order = (bfd_big_endian (objfile->obfd) ? enum bfd_endian byte_order = (bfd_big_endian (objfile->obfd) ?
@ -21897,7 +21918,7 @@ static void
dwarf2_const_value (const struct attribute *attr, struct symbol *sym, dwarf2_const_value (const struct attribute *attr, struct symbol *sym,
struct dwarf2_cu *cu) struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
LONGEST value; LONGEST value;
const gdb_byte *bytes; const gdb_byte *bytes;
struct dwarf2_locexpr_baton *baton; struct dwarf2_locexpr_baton *baton;
@ -21934,8 +21955,9 @@ die_type (struct die_info *die, struct dwarf2_cu *cu)
type_attr = dwarf2_attr (die, DW_AT_type, cu); type_attr = dwarf2_attr (die, DW_AT_type, cu);
if (!type_attr) if (!type_attr)
{ {
struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
/* A missing DW_AT_type represents a void type. */ /* A missing DW_AT_type represents a void type. */
return objfile_type (cu->dwarf2_per_objfile->objfile)->builtin_void; return objfile_type (objfile)->builtin_void;
} }
return lookup_die_type (die, type_attr, cu); return lookup_die_type (die, type_attr, cu);
@ -21998,11 +22020,12 @@ static struct type *
die_containing_type (struct die_info *die, struct dwarf2_cu *cu) die_containing_type (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct attribute *type_attr; struct attribute *type_attr;
struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
type_attr = dwarf2_attr (die, DW_AT_containing_type, cu); type_attr = dwarf2_attr (die, DW_AT_containing_type, cu);
if (!type_attr) if (!type_attr)
error (_("Dwarf Error: Problem turning containing type into gdb type " error (_("Dwarf Error: Problem turning containing type into gdb type "
"[in module %s]"), objfile_name (cu->dwarf2_per_objfile->objfile)); "[in module %s]"), objfile_name (objfile));
return lookup_die_type (die, type_attr, cu); return lookup_die_type (die, type_attr, cu);
} }
@ -22012,7 +22035,8 @@ die_containing_type (struct die_info *die, struct dwarf2_cu *cu)
static struct type * static struct type *
build_error_marker_type (struct dwarf2_cu *cu, struct die_info *die) build_error_marker_type (struct dwarf2_cu *cu, struct die_info *die)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
char *message, *saved; char *message, *saved;
@ -22036,7 +22060,8 @@ static struct type *
lookup_die_type (struct die_info *die, const struct attribute *attr, lookup_die_type (struct die_info *die, const struct attribute *attr,
struct dwarf2_cu *cu) struct dwarf2_cu *cu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct type *this_type; struct type *this_type;
@ -22221,7 +22246,7 @@ guess_full_die_structure_name (struct die_info *die, struct dwarf2_cu *cu)
struct die_info *spec_die; struct die_info *spec_die;
struct dwarf2_cu *spec_cu; struct dwarf2_cu *spec_cu;
struct die_info *child; struct die_info *child;
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
spec_cu = cu; spec_cu = cu;
spec_die = die_specification (die, &spec_cu); spec_die = die_specification (die, &spec_cu);
@ -22305,7 +22330,7 @@ anonymous_struct_prefix (struct die_info *die, struct dwarf2_cu *cu)
if (base == NULL || base == DW_STRING (attr) || base[-1] != ':') if (base == NULL || base == DW_STRING (attr) || base[-1] != ':')
return ""; return "";
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
return (char *) obstack_copy0 (&objfile->per_bfd->storage_obstack, return (char *) obstack_copy0 (&objfile->per_bfd->storage_obstack,
DW_STRING (attr), DW_STRING (attr),
&base[-1] - DW_STRING (attr)); &base[-1] - DW_STRING (attr));
@ -22329,7 +22354,8 @@ anonymous_struct_prefix (struct die_info *die, struct dwarf2_cu *cu)
static const char * static const char *
determine_prefix (struct die_info *die, struct dwarf2_cu *cu) determine_prefix (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct die_info *parent, *spec_die; struct die_info *parent, *spec_die;
struct dwarf2_cu *spec_cu; struct dwarf2_cu *spec_cu;
struct type *parent_type; struct type *parent_type;
@ -22575,7 +22601,7 @@ static const char *
dwarf2_name (struct die_info *die, struct dwarf2_cu *cu) dwarf2_name (struct die_info *die, struct dwarf2_cu *cu)
{ {
struct attribute *attr; struct attribute *attr;
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
attr = dwarf2_attr (die, DW_AT_name, cu); attr = dwarf2_attr (die, DW_AT_name, cu);
if ((!attr || !DW_STRING (attr)) if ((!attr || !DW_STRING (attr))
@ -22996,7 +23022,7 @@ follow_die_ref_or_sig (struct die_info *src_die, const struct attribute *attr,
{ {
dump_die_for_error (src_die); dump_die_for_error (src_die);
error (_("Dwarf Error: Expected reference attribute [in module %s]"), error (_("Dwarf Error: Expected reference attribute [in module %s]"),
objfile_name ((*ref_cu)->dwarf2_per_objfile->objfile)); objfile_name ((*ref_cu)->per_cu->dwarf2_per_objfile->objfile));
} }
return die; return die;
@ -23013,7 +23039,8 @@ follow_die_offset (sect_offset sect_off, int offset_in_dwz,
{ {
struct die_info temp_die; struct die_info temp_die;
struct dwarf2_cu *target_cu, *cu = *ref_cu; struct dwarf2_cu *target_cu, *cu = *ref_cu;
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
gdb_assert (cu->per_cu != NULL); gdb_assert (cu->per_cu != NULL);
@ -23076,7 +23103,7 @@ follow_die_ref (struct die_info *src_die, const struct attribute *attr,
error (_("Dwarf Error: Cannot find DIE at 0x%x referenced from DIE " error (_("Dwarf Error: Cannot find DIE at 0x%x referenced from DIE "
"at 0x%x [in module %s]"), "at 0x%x [in module %s]"),
to_underlying (sect_off), to_underlying (src_die->sect_off), to_underlying (sect_off), to_underlying (src_die->sect_off),
objfile_name (cu->dwarf2_per_objfile->objfile)); objfile_name (cu->per_cu->dwarf2_per_objfile->objfile));
return die; return die;
} }
@ -23385,7 +23412,7 @@ follow_die_sig_1 (struct die_info *src_die, struct signatured_type *sig_type,
if (die) if (die)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile struct dwarf2_per_objfile *dwarf2_per_objfile
= (*ref_cu)->dwarf2_per_objfile; = (*ref_cu)->per_cu->dwarf2_per_objfile;
/* For .gdb_index version 7 keep track of included TUs. /* For .gdb_index version 7 keep track of included TUs.
http://sourceware.org/bugzilla/show_bug.cgi?id=15021. */ http://sourceware.org/bugzilla/show_bug.cgi?id=15021. */
@ -23428,7 +23455,7 @@ follow_die_sig (struct die_info *src_die, const struct attribute *attr,
error (_("Dwarf Error: Cannot find signatured DIE %s referenced" error (_("Dwarf Error: Cannot find signatured DIE %s referenced"
" from DIE at 0x%x [in module %s]"), " from DIE at 0x%x [in module %s]"),
hex_string (signature), to_underlying (src_die->sect_off), hex_string (signature), to_underlying (src_die->sect_off),
objfile_name ((*ref_cu)->dwarf2_per_objfile->objfile)); objfile_name ((*ref_cu)->per_cu->dwarf2_per_objfile->objfile));
} }
die = follow_die_sig_1 (src_die, sig_type, ref_cu); die = follow_die_sig_1 (src_die, sig_type, ref_cu);
@ -23438,7 +23465,7 @@ follow_die_sig (struct die_info *src_die, const struct attribute *attr,
error (_("Dwarf Error: Problem reading signatured DIE %s referenced" error (_("Dwarf Error: Problem reading signatured DIE %s referenced"
" from DIE at 0x%x [in module %s]"), " from DIE at 0x%x [in module %s]"),
hex_string (signature), to_underlying (src_die->sect_off), hex_string (signature), to_underlying (src_die->sect_off),
objfile_name ((*ref_cu)->dwarf2_per_objfile->objfile)); objfile_name ((*ref_cu)->per_cu->dwarf2_per_objfile->objfile));
} }
return die; return die;
@ -23451,7 +23478,8 @@ static struct type *
get_signatured_type (struct die_info *die, ULONGEST signature, get_signatured_type (struct die_info *die, ULONGEST signature,
struct dwarf2_cu *cu) struct dwarf2_cu *cu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct signatured_type *sig_type; struct signatured_type *sig_type;
struct dwarf2_cu *type_cu; struct dwarf2_cu *type_cu;
struct die_info *type_die; struct die_info *type_die;
@ -23527,7 +23555,8 @@ get_DW_AT_signature_type (struct die_info *die, const struct attribute *attr,
} }
else else
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
complaint (&symfile_complaints, complaint (&symfile_complaints,
_("Dwarf Error: DW_AT_signature has bad form %s in DIE" _("Dwarf Error: DW_AT_signature has bad form %s in DIE"
@ -23639,7 +23668,7 @@ read_signatured_type (struct signatured_type *sig_type)
static CORE_ADDR static CORE_ADDR
decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu) decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu)
{ {
struct objfile *objfile = cu->dwarf2_per_objfile->objfile; struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile;
size_t i; size_t i;
size_t size = blk->size; size_t size = blk->size;
const gdb_byte *data = blk->data; const gdb_byte *data = blk->data;
@ -24630,7 +24659,8 @@ static void
dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset, dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset,
int section_is_gnu) int section_is_gnu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct line_header *lh = cu->line_header; struct line_header *lh = cu->line_header;
bfd *abfd; bfd *abfd;
@ -24913,7 +24943,8 @@ attr_form_is_ref (const struct attribute *attr)
static struct dwarf2_section_info * static struct dwarf2_section_info *
cu_debug_loc_section (struct dwarf2_cu *cu) cu_debug_loc_section (struct dwarf2_cu *cu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
if (cu->dwo_unit) if (cu->dwo_unit)
{ {
@ -24932,7 +24963,8 @@ fill_in_loclist_baton (struct dwarf2_cu *cu,
struct dwarf2_loclist_baton *baton, struct dwarf2_loclist_baton *baton,
const struct attribute *attr) const struct attribute *attr)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct dwarf2_section_info *section = cu_debug_loc_section (cu); struct dwarf2_section_info *section = cu_debug_loc_section (cu);
dwarf2_read_section (dwarf2_per_objfile->objfile, section); dwarf2_read_section (dwarf2_per_objfile->objfile, section);
@ -24951,7 +24983,8 @@ static void
dwarf2_symbol_mark_computed (const struct attribute *attr, struct symbol *sym, dwarf2_symbol_mark_computed (const struct attribute *attr, struct symbol *sym,
struct dwarf2_cu *cu, int is_block) struct dwarf2_cu *cu, int is_block)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct dwarf2_section_info *section = cu_debug_loc_section (cu); struct dwarf2_section_info *section = cu_debug_loc_section (cu);
@ -25172,7 +25205,6 @@ init_one_comp_unit (struct dwarf2_cu *cu, struct dwarf2_per_cu_data *per_cu)
memset (cu, 0, sizeof (*cu)); memset (cu, 0, sizeof (*cu));
per_cu->cu = cu; per_cu->cu = cu;
cu->per_cu = per_cu; cu->per_cu = per_cu;
cu->dwarf2_per_objfile = per_cu->dwarf2_per_objfile;
obstack_init (&cu->comp_unit_obstack); obstack_init (&cu->comp_unit_obstack);
} }
@ -25395,7 +25427,8 @@ per_cu_offset_and_type_eq (const void *item_lhs, const void *item_rhs)
static struct type * static struct type *
set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{ {
struct dwarf2_per_objfile *dwarf2_per_objfile = cu->dwarf2_per_objfile; struct dwarf2_per_objfile *dwarf2_per_objfile
= cu->per_cu->dwarf2_per_objfile;
struct dwarf2_per_cu_offset_and_type **slot, ofs; struct dwarf2_per_cu_offset_and_type **slot, ofs;
struct objfile *objfile = dwarf2_per_objfile->objfile; struct objfile *objfile = dwarf2_per_objfile->objfile;
struct attribute *attr; struct attribute *attr;