From: Tom Tromey Date: Sat, 8 Feb 2020 20:40:54 +0000 (-0700) Subject: Simplify "want_partial_unit" handling X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=135f543748f651938774666649bb0365018d62da;p=binutils-gdb.git Simplify "want_partial_unit" handling This changes the "want_partial_unit" parameters to have type bool, and also removes the parameter from process_psymtab_comp_unit_reader. This latter change seemed like an improvement, because it avoids a pointless function call in the case where we are not planning to read a partial unit. 2020-02-08 Tom Tromey * dwarf2/read.c (process_psymtab_comp_unit_reader): Remove "want_partial_unit" parameter. (process_psymtab_comp_unit): Change want_partial_unit to bool. Inline check for DW_TAG_partial_unit. (dwarf2_build_psymtabs_hard, scan_partial_symbols): Update. Change-Id: I99e647f0c4faa3346e90a6e7bacc82af57eccff1 --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3be17561f56..90ec52c65bf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2020-02-08 Tom Tromey + + * dwarf2/read.c (process_psymtab_comp_unit_reader): Remove + "want_partial_unit" parameter. + (process_psymtab_comp_unit): Change want_partial_unit to bool. + Inline check for DW_TAG_partial_unit. + (dwarf2_build_psymtabs_hard, scan_partial_symbols): Update. + 2020-02-08 Tom Tromey * dwarf2/read.c (read_n_bytes, read_direct_string): Move to diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 88be8d60cf5..4a9f16047c2 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -7240,7 +7240,6 @@ static void process_psymtab_comp_unit_reader (const struct die_reader_specs *reader, const gdb_byte *info_ptr, struct die_info *comp_unit_die, - int want_partial_unit, enum language pretend_language) { struct dwarf2_cu *cu = reader->cu; @@ -7253,9 +7252,6 @@ process_psymtab_comp_unit_reader (const struct die_reader_specs *reader, enum pc_bounds_kind cu_bounds_kind; const char *filename; - if (comp_unit_die->tag == DW_TAG_partial_unit && !want_partial_unit) - return; - gdb_assert (! per_cu->is_debug_types); prepare_one_comp_unit (cu, comp_unit_die, pretend_language); @@ -7369,7 +7365,7 @@ process_psymtab_comp_unit_reader (const struct die_reader_specs *reader, static void process_psymtab_comp_unit (struct dwarf2_per_cu_data *this_cu, - int want_partial_unit, + bool want_partial_unit, enum language pretend_language) { /* If this compilation unit was already read in, free the @@ -7389,10 +7385,10 @@ process_psymtab_comp_unit (struct dwarf2_per_cu_data *this_cu, else if (this_cu->is_debug_types) build_type_psymtabs_reader (&reader, reader.info_ptr, reader.comp_unit_die); - else + else if (want_partial_unit + || reader.comp_unit_die->tag != DW_TAG_partial_unit) process_psymtab_comp_unit_reader (&reader, reader.info_ptr, reader.comp_unit_die, - want_partial_unit, pretend_language); /* Age out any secondary CUs. */ @@ -7752,7 +7748,7 @@ dwarf2_build_psymtabs_hard (struct dwarf2_per_objfile *dwarf2_per_objfile) addrmap_create_mutable (&temp_obstack)); for (dwarf2_per_cu_data *per_cu : dwarf2_per_objfile->all_comp_units) - process_psymtab_comp_unit (per_cu, 0, language_minimal); + process_psymtab_comp_unit (per_cu, false, language_minimal); /* This has to wait until we read the CUs, we need the list of DWOs. */ process_skeletonless_type_units (dwarf2_per_objfile); @@ -7969,7 +7965,7 @@ scan_partial_symbols (struct partial_die_info *first_die, CORE_ADDR *lowpc, /* Go read the partial unit, if needed. */ if (per_cu->v.psymtab == NULL) - process_psymtab_comp_unit (per_cu, 1, cu->language); + process_psymtab_comp_unit (per_cu, true, cu->language); cu->per_cu->imported_symtabs_push (per_cu); }