From patchwork Sun Dec 10 21:11:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 24847 Received: (qmail 7001 invoked by alias); 10 Dec 2017 21:11:57 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 6971 invoked by uid 89); 10 Dec 2017 21:11:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.2 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_SOFTFAIL autolearn=ham version=3.3.2 spammy= X-HELO: barracuda.ebox.ca Received: from barracuda.ebox.ca (HELO barracuda.ebox.ca) (96.127.255.19) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 10 Dec 2017 21:11:49 +0000 X-ASG-Debug-ID: 1512940301-0c856e65d53f652f0001-fS2M51 Received: from smtp.ebox.ca (smtp.electronicbox.net [96.127.255.82]) by barracuda.ebox.ca with ESMTP id eHNjz8V0t6o9ZxCA (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 10 Dec 2017 16:11:41 -0500 (EST) X-Barracuda-Envelope-From: simon.marchi@polymtl.ca X-Barracuda-RBL-Trusted-Forwarder: 96.127.255.82 Received: from simark.lan (192-222-251-162.qc.cable.ebox.net [192.222.251.162]) by smtp.ebox.ca (Postfix) with ESMTP id 069C2441B21; Sun, 10 Dec 2017 16:11:41 -0500 (EST) From: Simon Marchi X-Barracuda-Effective-Source-IP: 192-222-251-162.qc.cable.ebox.net[192.222.251.162] X-Barracuda-Apparent-Source-IP: 192.222.251.162 X-Barracuda-RBL-IP: 192.222.251.162 To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 3/2] Remove dwarf2_cu::dwarf2_per_objfile Date: Sun, 10 Dec 2017 16:11:40 -0500 X-ASG-Orig-Subj: [PATCH 3/2] Remove dwarf2_cu::dwarf2_per_objfile Message-Id: <20171210211140.8257-1-simon.marchi@polymtl.ca> In-Reply-To: <20171210180936.10263-1-simon.marchi@polymtl.ca> References: <20171210180936.10263-1-simon.marchi@polymtl.ca> X-Barracuda-Connect: smtp.electronicbox.net[96.127.255.82] X-Barracuda-Start-Time: 1512940301 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://96.127.255.19:443/cgi-mod/mark.cgi X-Barracuda-Scan-Msg-Size: 47692 X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=8.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.45740 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-IsSubscribed: yes [Since I mentioned it as a possibility in the first patch, I thought I would do this one as well...] 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) : 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. --- gdb/dwarf2read.c | 244 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 138 insertions(+), 106 deletions(-) diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index dfb7d5729e..4d5b082767 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -661,9 +661,6 @@ DEF_VEC_O (delayed_method_info); /* Internal state when decoding a particular compilation unit. */ struct dwarf2_cu { - /* The dwarf2_per_objfile containing this compilation unit. */ - struct dwarf2_per_objfile *dwarf2_per_objfile; - /* The header of the compilation unit. */ 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_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 dwarf2_per_cu_data *lh_cu; struct attribute *attr; @@ -7253,7 +7251,8 @@ fill_in_sig_entry_from_dwo_entry (struct dwarf2_per_objfile *dwarf2_per_objfile, static struct signatured_type * 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 dwo_file *dwo_file; struct dwo_unit find_dwo_entry, *dwo_entry; @@ -7322,7 +7321,8 @@ lookup_dwo_signatured_type (struct dwarf2_cu *cu, ULONGEST sig) static struct signatured_type * 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 dwp_file *dwp_file = get_dwp_file (dwarf2_per_objfile); struct dwo_unit *dwo_entry; @@ -7371,7 +7371,8 @@ lookup_dwp_signatured_type (struct dwarf2_cu *cu, ULONGEST sig) static struct signatured_type * 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 && dwarf2_per_objfile->using_index) @@ -8162,7 +8163,8 @@ allocate_type_unit_groups_table (struct objfile *objfile) static struct type_unit_group * 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 dwarf2_per_cu_data *per_cu; struct type_unit_group *tu_group; @@ -8170,7 +8172,7 @@ create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct) tu_group = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct type_unit_group); 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) { @@ -8208,7 +8210,8 @@ create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct) static struct type_unit_group * 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 type_unit_group *tu_group; void **slot; @@ -8313,7 +8316,7 @@ process_psymtab_comp_unit_reader (const struct die_reader_specs *reader, void *data) { 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 dwarf2_per_cu_data *per_cu = cu->per_cu; CORE_ADDR baseaddr; @@ -8476,7 +8479,7 @@ build_type_psymtabs_reader (const struct die_reader_specs *reader, void *data) { 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 dwarf2_cu *cu = reader->cu; struct dwarf2_per_cu_data *per_cu = cu->per_cu; @@ -9095,12 +9098,12 @@ scan_partial_symbols (struct partial_die_info *first_die, CORE_ADDR *lowpc, { error (_("Dwarf Error: DW_TAG_imported_unit is not" " 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 (pdi->d.sect_off, pdi->is_dwz, - cu->dwarf2_per_objfile); + cu->per_cu->dwarf2_per_objfile); /* Go read the partial unit, if needed. */ if (per_cu->v.psymtab == NULL) @@ -9262,7 +9265,8 @@ partial_die_full_name (struct partial_die_info *pdi, static void 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 gdbarch *gdbarch = get_objfile_arch (objfile); CORE_ADDR addr = 0; @@ -9505,7 +9509,7 @@ add_partial_subprogram (struct partial_die_info *pdi, *highpc = pdi->highpc; 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); CORE_ADDR baseaddr; CORE_ADDR highpc; @@ -9591,7 +9595,7 @@ static struct abbrev_info * peek_die_abbrev (const gdb_byte *info_ptr, unsigned int *bytes_read, 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; struct abbrev_info *abbrev; @@ -10260,7 +10264,8 @@ fixup_go_packaging (struct dwarf2_cu *cu) package_name = this_package_name; 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) complaint (&symfile_complaints, _("Symtab %s has objects from two different Go packages: %s and %s"), @@ -10277,7 +10282,7 @@ fixup_go_packaging (struct dwarf2_cu *cu) 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 *) obstack_copy0 (&objfile->per_bfd->storage_obstack, package_name, @@ -10638,7 +10643,7 @@ process_imported_unit_die (struct die_info *die, struct dwarf2_cu *cu) { error (_("Dwarf Error: DW_TAG_imported_unit is not" " 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); @@ -10648,7 +10653,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); dwarf2_per_cu_data *per_cu = 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 (maybe_queue_comp_unit (cu, per_cu, cu->language)) @@ -10905,7 +10910,7 @@ dwarf2_compute_name (const char *name, struct die_info *die, struct dwarf2_cu *cu, int physname) { - struct objfile *objfile = cu->dwarf2_per_objfile->objfile; + struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile; if (name == NULL) name = dwarf2_name (die, cu); @@ -11154,7 +11159,7 @@ dwarf2_full_name (const char *name, struct die_info *die, struct dwarf2_cu *cu) static const char * 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; int need_copy = 1; @@ -11328,7 +11333,7 @@ using_directives (enum language language) static void 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 die_info *imported_die, *child_die; struct dwarf2_cu *imported_cu; @@ -11535,7 +11540,8 @@ static void handle_DW_AT_stmt_list (struct die_info *die, struct dwarf2_cu *cu, 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 attribute *attr; struct line_header line_header_local; @@ -11634,7 +11640,8 @@ handle_DW_AT_stmt_list (struct die_info *die, struct dwarf2_cu *cu, static void 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 gdbarch *gdbarch = get_objfile_arch (objfile); CORE_ADDR lowpc = ((CORE_ADDR) -1); @@ -13780,7 +13787,7 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu) static void 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 context_stack *newobj; CORE_ADDR lowpc; @@ -13971,7 +13978,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) static void 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 context_stack *newobj; CORE_ADDR lowpc, highpc; @@ -14042,7 +14049,7 @@ read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu) static void 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); CORE_ADDR pc, baseaddr; struct attribute *attr; @@ -14196,7 +14203,7 @@ read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu) struct die_info *target_die; 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)) { const char *target_physname; @@ -14398,7 +14405,7 @@ read_variable (struct die_info *die, struct dwarf2_cu *cu) 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, struct rust_vtable_symbol); @@ -14424,7 +14431,7 @@ dwarf2_rnglists_process (unsigned offset, struct dwarf2_cu *cu, Callback &&callback) { struct dwarf2_per_objfile *dwarf2_per_objfile - = cu->dwarf2_per_objfile; + = cu->per_cu->dwarf2_per_objfile; struct objfile *objfile = dwarf2_per_objfile->objfile; bfd *obfd = objfile->obfd; /* Base address selection entry. */ @@ -14592,7 +14599,7 @@ dwarf2_ranges_process (unsigned offset, struct dwarf2_cu *cu, Callback &&callback) { 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 comp_unit_head *cu_header = &cu->header; bfd *obfd = objfile->obfd; @@ -14700,7 +14707,7 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return, CORE_ADDR *high_return, struct dwarf2_cu *cu, 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); const CORE_ADDR baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile)); @@ -14767,7 +14774,8 @@ dwarf2_get_pc_bounds (struct die_info *die, CORE_ADDR *lowpc, CORE_ADDR *highpc, struct dwarf2_cu *cu, 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_high; CORE_ADDR low = 0; @@ -14942,7 +14950,7 @@ static void dwarf2_record_block_ranges (struct die_info *die, struct block *block, 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 attribute *attr; struct attribute *attr_high; @@ -15126,7 +15134,7 @@ static void dwarf2_add_field (struct field_info *fip, 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 nextfield *new_field; struct attribute *attr; @@ -15525,7 +15533,7 @@ static void dwarf2_add_member_fn (struct field_info *fip, struct die_info *die, 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 fnfieldlist *flp; int i; @@ -15837,7 +15845,7 @@ quirk_gcc_member_function_pointer (struct type *type, struct objfile *objfile) static struct type * 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 attribute *attr; const char *name; @@ -15960,7 +15968,7 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu) static void 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 type *type; @@ -16260,7 +16268,7 @@ update_enumeration_type_from_children (struct die_info *die, static struct type * 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 attribute *attr; const char *name; @@ -16432,7 +16440,7 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu) static struct type * 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 type *type; struct type *element_type, *range_type, *index_type; @@ -16616,7 +16624,8 @@ mark_common_block_symbol_computed (struct symbol *sym, struct attribute *member_loc, 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 dwarf2_locexpr_baton *baton; gdb_byte *ptr; @@ -16706,7 +16715,7 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu) 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; size_t n_entries = 0, size; struct common_block *common_block; @@ -16751,7 +16760,7 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu) "DW_AT_data_member_location " "- DIE at 0x%x [in module %s]"), to_underlying (child_die->sect_off), - objfile_name (cu->dwarf2_per_objfile->objfile)); + objfile_name (objfile)); if (attr_form_is_section_offset (member_loc)) dwarf2_complex_location_expr_complaint (); @@ -16778,7 +16787,7 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu) static struct type * 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; int is_anonymous; struct type *type; @@ -16818,7 +16827,7 @@ read_namespace_type (struct die_info *die, struct dwarf2_cu *cu) static void 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; /* Add a symbol associated to this if we haven't seen the namespace @@ -16863,7 +16872,7 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu) static struct type * 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; struct type *type; @@ -16937,7 +16946,8 @@ namespace_name (struct die_info *die, int *is_anonymous, struct dwarf2_cu *cu) static struct type * 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 type *type; struct attribute *attr_byte_size; @@ -17018,7 +17028,8 @@ read_tag_ptr_to_member_type (struct die_info *die, struct dwarf2_cu *cu) type = lookup_methodptr_type (to_type); 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), TYPE_FIELDS (to_type), TYPE_NFIELDS (to_type), @@ -17181,7 +17192,7 @@ read_tag_atomic_type (struct die_info *die, struct dwarf2_cu *cu) static struct type * 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 type *type, *range_type, *index_type, *char_type; struct attribute *attr; @@ -17259,7 +17270,7 @@ prototyped_function_p (struct die_info *die, struct dwarf2_cu *cu) static struct type * 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 *ftype; /* Function that returns above type. */ struct attribute *attr; @@ -17396,7 +17407,7 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu) static struct type * 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; struct type *this_type, *target_type; @@ -17447,7 +17458,7 @@ dwarf2_init_float_type (struct objfile *objfile, int bits, const char *name, static struct type * 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 attribute *attr; int encoding = 0, bits = 0; @@ -17559,7 +17570,8 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, struct dwarf2_cu *cu, struct dynamic_prop *prop) { 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) return 0; @@ -17721,7 +17733,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) complaint (&symfile_complaints, _("Missing DW_AT_lower_bound " "- DIE at 0x%x [in module %s]"), 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); if (!attr_to_dynamic_prop (attr, die, cu, &high)) @@ -17751,7 +17763,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) high bound or count are not yet handled by this code. */ 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); int addr_size = gdbarch_addr_bit (gdbarch) /8; struct type *int_type = objfile_type (objfile)->builtin_int; @@ -17823,7 +17835,7 @@ read_unspecified_type (struct die_info *die, struct dwarf2_cu *cu) /* For now, we only support the C meaning of an unspecified type: void. */ - 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); return set_die_type (die, type, cu); @@ -18210,7 +18222,7 @@ dwarf2_read_abbrevs (struct dwarf2_cu *cu, struct dwarf2_section_info *abbrev_section) { 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); } @@ -18267,7 +18279,7 @@ load_partial_dies (const struct die_reader_specs *reader, const gdb_byte *info_ptr, int building_psymtab) { 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 *parent_die, *last_die, *first_die = NULL; struct abbrev_info *abbrev; @@ -18544,7 +18556,8 @@ read_partial_die (const struct die_reader_specs *reader, const gdb_byte *info_ptr) { 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; const gdb_byte *buffer = reader->buffer; unsigned int i; @@ -18782,7 +18795,8 @@ find_partial_die_in_comp_unit (sect_offset sect_off, struct dwarf2_cu *cu) static struct partial_die_info * 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 dwarf2_per_cu_data *per_cu = NULL; struct partial_die_info *pd = NULL; @@ -18884,7 +18898,7 @@ guess_partial_die_structure_name (struct partial_die_info *struct_pdi, child_pdi->linkage_name); 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 = ((const char *) obstack_copy0 (&objfile->per_bfd->storage_obstack, @@ -18941,7 +18955,8 @@ fixup_partial_die (struct partial_die_info *part_die, children, see if we can determine the namespace from their linkage name. */ 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->has_children && (part_die->tag == DW_TAG_class_type @@ -18973,7 +18988,7 @@ fixup_partial_die (struct partial_die_info *part_die, else base = demangled; - struct objfile *objfile = cu->dwarf2_per_objfile->objfile; + struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile; part_die->name = ((const char *) obstack_copy0 (&objfile->per_bfd->storage_obstack, @@ -18993,7 +19008,8 @@ read_attribute_value (const struct die_reader_specs *reader, LONGEST implicit_const, const gdb_byte *info_ptr) { 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 gdbarch *gdbarch = get_objfile_arch (objfile); bfd *abfd = reader->abfd; @@ -19694,8 +19710,8 @@ read_addr_index_1 (struct dwarf2_per_objfile *dwarf2_per_objfile, static CORE_ADDR 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, - cu->header.addr_size); + return read_addr_index_1 (cu->per_cu->dwarf2_per_objfile, addr_index, + cu->addr_base, cu->header.addr_size); } /* Given a pointer to an leb128 value, fetch the value from .debug_addr. */ @@ -19704,7 +19720,7 @@ static CORE_ADDR read_addr_index_from_leb128 (struct dwarf2_cu *cu, const gdb_byte *info_ptr, 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); return read_addr_index (cu, addr_index); @@ -19795,7 +19811,8 @@ static const char * read_str_index (const struct die_reader_specs *reader, ULONGEST str_index) { 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; const char *objf_name = objfile_name (objfile); bfd *abfd = objfile->obfd; @@ -19978,7 +19995,7 @@ dwarf2_string_attr (struct die_info *die, unsigned int name, struct dwarf2_cu *c _("string type expected for attribute %s for " "DIE at 0x%x in module %s"), 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; @@ -20070,7 +20087,8 @@ static struct dwarf2_section_info * get_debug_line_section (struct dwarf2_cu *cu) { 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 DWO file. */ @@ -20237,7 +20255,8 @@ dwarf_decode_line_header (sect_offset sect_off, struct dwarf2_cu *cu) const char *cur_dir, *cur_file; struct dwarf2_section_info *section; 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); dwarf2_read_section (dwarf2_per_objfile->objfile, section); @@ -20870,7 +20889,7 @@ lnp_state_machine::check_line_address (struct dwarf2_cu *cu, /* This line table is for a function which has been 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; complaint (&symfile_complaints, @@ -20896,7 +20915,7 @@ dwarf_decode_lines_1 (struct line_header *lh, struct dwarf2_cu *cu, unsigned int bytes_read, extended_len; unsigned char op_code, extended_op; 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; struct gdbarch *gdbarch = get_objfile_arch (objfile); /* True if we're recording line info (as opposed to building partial @@ -21127,7 +21146,7 @@ dwarf_decode_lines (struct line_header *lh, const char *comp_dir, struct dwarf2_cu *cu, struct partial_symtab *pst, 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); if (decode_mapping) @@ -21227,8 +21246,8 @@ dwarf2_start_symtab (struct dwarf2_cu *cu, const char *name, const char *comp_dir, CORE_ADDR low_pc) { struct compunit_symtab *cust - = start_symtab (cu->dwarf2_per_objfile->objfile, name, comp_dir, low_pc, - cu->language); + = start_symtab (cu->per_cu->dwarf2_per_objfile->objfile, name, comp_dir, + low_pc, cu->language); record_debugformat ("DWARF 2"); record_producer (cu->producer); @@ -21245,7 +21264,7 @@ static void var_decode_location (struct attribute *attr, struct symbol *sym, 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; /* NOTE drow/2003-01-30: There used to be a comment and some special @@ -21318,7 +21337,8 @@ static struct symbol * new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu, 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 gdbarch *gdbarch = get_objfile_arch (objfile); struct symbol *sym = NULL; @@ -21717,7 +21737,7 @@ static gdb_byte * dwarf2_const_value_data (const struct attribute *attr, struct obstack *obstack, 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) ? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE; LONGEST l = DW_UNSND (attr); @@ -21752,7 +21772,7 @@ dwarf2_const_value_attr (const struct attribute *attr, struct type *type, LONGEST *value, const gdb_byte **bytes, 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 dwarf_block *blk; enum bfd_endian byte_order = (bfd_big_endian (objfile->obfd) ? @@ -21854,7 +21874,7 @@ static void dwarf2_const_value (const struct attribute *attr, struct symbol *sym, struct dwarf2_cu *cu) { - struct objfile *objfile = cu->dwarf2_per_objfile->objfile; + struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile; LONGEST value; const gdb_byte *bytes; struct dwarf2_locexpr_baton *baton; @@ -21891,8 +21911,9 @@ die_type (struct die_info *die, struct dwarf2_cu *cu) type_attr = dwarf2_attr (die, DW_AT_type, cu); if (!type_attr) { + struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile; /* 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); @@ -21955,11 +21976,12 @@ static struct type * die_containing_type (struct die_info *die, struct dwarf2_cu *cu) { struct attribute *type_attr; + struct objfile *objfile = cu->per_cu->dwarf2_per_objfile->objfile; type_attr = dwarf2_attr (die, DW_AT_containing_type, cu); if (!type_attr) 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); } @@ -21969,7 +21991,8 @@ die_containing_type (struct die_info *die, struct dwarf2_cu *cu) static struct type * 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; char *message, *saved; @@ -21993,7 +22016,8 @@ static struct type * lookup_die_type (struct die_info *die, const struct attribute *attr, 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 type *this_type; @@ -22178,7 +22202,7 @@ guess_full_die_structure_name (struct die_info *die, struct dwarf2_cu *cu) struct die_info *spec_die; struct dwarf2_cu *spec_cu; 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_die = die_specification (die, &spec_cu); @@ -22262,7 +22286,7 @@ anonymous_struct_prefix (struct die_info *die, struct dwarf2_cu *cu) if (base == NULL || base == DW_STRING (attr) || base[-1] != ':') 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, DW_STRING (attr), &base[-1] - DW_STRING (attr)); @@ -22286,7 +22310,8 @@ anonymous_struct_prefix (struct die_info *die, struct dwarf2_cu *cu) static const char * 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 dwarf2_cu *spec_cu; struct type *parent_type; @@ -22532,7 +22557,7 @@ static const char * dwarf2_name (struct die_info *die, struct dwarf2_cu *cu) { 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); if ((!attr || !DW_STRING (attr)) @@ -22953,7 +22978,7 @@ follow_die_ref_or_sig (struct die_info *src_die, const struct attribute *attr, { dump_die_for_error (src_die); 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; @@ -22970,7 +22995,8 @@ follow_die_offset (sect_offset sect_off, int offset_in_dwz, { struct die_info temp_die; 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; gdb_assert (cu->per_cu != NULL); @@ -23033,7 +23059,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 " "at 0x%x [in module %s]"), 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; } @@ -23342,7 +23368,7 @@ follow_die_sig_1 (struct die_info *src_die, struct signatured_type *sig_type, if (die) { 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. http://sourceware.org/bugzilla/show_bug.cgi?id=15021. */ @@ -23385,7 +23411,7 @@ follow_die_sig (struct die_info *src_die, const struct attribute *attr, error (_("Dwarf Error: Cannot find signatured DIE %s referenced" " from DIE at 0x%x [in module %s]"), 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); @@ -23395,7 +23421,7 @@ follow_die_sig (struct die_info *src_die, const struct attribute *attr, error (_("Dwarf Error: Problem reading signatured DIE %s referenced" " from DIE at 0x%x [in module %s]"), 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; @@ -23408,7 +23434,8 @@ static struct type * get_signatured_type (struct die_info *die, ULONGEST signature, 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 dwarf2_cu *type_cu; struct die_info *type_die; @@ -23484,7 +23511,8 @@ get_DW_AT_signature_type (struct die_info *die, const struct attribute *attr, } 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, _("Dwarf Error: DW_AT_signature has bad form %s in DIE" @@ -23596,7 +23624,7 @@ read_signatured_type (struct signatured_type *sig_type) static CORE_ADDR 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 size = blk->size; const gdb_byte *data = blk->data; @@ -24584,7 +24612,8 @@ static void dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset, 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 line_header *lh = cu->line_header; bfd *abfd; @@ -24864,7 +24893,8 @@ attr_form_is_ref (const struct attribute *attr) static struct dwarf2_section_info * 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) { @@ -24883,7 +24913,8 @@ fill_in_loclist_baton (struct dwarf2_cu *cu, struct dwarf2_loclist_baton *baton, 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); dwarf2_read_section (dwarf2_per_objfile->objfile, section); @@ -24902,7 +24933,8 @@ static void dwarf2_symbol_mark_computed (const struct attribute *attr, struct symbol *sym, 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 dwarf2_section_info *section = cu_debug_loc_section (cu); @@ -25123,7 +25155,6 @@ init_one_comp_unit (struct dwarf2_cu *cu, struct dwarf2_per_cu_data *per_cu) memset (cu, 0, sizeof (*cu)); per_cu->cu = cu; cu->per_cu = per_cu; - cu->dwarf2_per_objfile = per_cu->dwarf2_per_objfile; obstack_init (&cu->comp_unit_obstack); } @@ -25346,7 +25377,8 @@ per_cu_offset_and_type_eq (const void *item_lhs, const void *item_rhs) static struct type * 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 objfile *objfile = dwarf2_per_objfile->objfile; struct attribute *attr;