aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2020-04-08 08:30:06 -0400
committerSimon Marchi <simon.marchi@efficios.com>2020-05-12 15:24:51 -0400
commita3ddd1a46c2f7ba70387d90ea2f6c16b5a9764b1 (patch)
treea1fd5f6958e4e2e679163e6dcdf74a107f2e66be
parentd4b0ea16296c8ba432e5110d696acdd6979216e4 (diff)
downloadgdb-a3ddd1a46c2f7ba70387d90ea2f6c16b5a9764b1.zip
gdb-a3ddd1a46c2f7ba70387d90ea2f6c16b5a9764b1.tar.gz
gdb-a3ddd1a46c2f7ba70387d90ea2f6c16b5a9764b1.tar.bz2
Pass dwarf2_cu to process_full_{comp,type}_unit
These two functions work on a dwarf2_cu. It is currently obtained from the per_cu->cu link, which we want to remove. Make them accept the dwarf2_cu directly as a parameter. This moves the per_cu->cu references one level up, but that one will be removed too in a subsequent patch. gdb/ChangeLog: * dwarf2/read.c (process_full_comp_unit, process_full_type_unit): Remove per_cu, per_objfile paramters. Add dwarf2_cu parameter. (process_queue): Update.
-rw-r--r--gdb/dwarf2/read.c37
1 files changed, 15 insertions, 22 deletions
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 5eb32a1..68d7efa 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -1570,12 +1570,10 @@ static void load_full_comp_unit (dwarf2_per_cu_data *per_cu,
bool skip_partial,
enum language pretend_language);
-static void process_full_comp_unit (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile,
+static void process_full_comp_unit (dwarf2_cu *cu,
enum language pretend_language);
-static void process_full_type_unit (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile,
+static void process_full_type_unit (dwarf2_cu *cu,
enum language pretend_language);
static void dwarf2_add_dependence (struct dwarf2_cu *,
@@ -8983,11 +8981,9 @@ process_queue (struct dwarf2_per_objfile *dwarf2_per_objfile)
fprintf_unfiltered (gdb_stdlog, "Expanding symtab of %s\n", buf);
if (per_cu->is_debug_types)
- process_full_type_unit (per_cu, dwarf2_per_objfile,
- item.pretend_language);
+ process_full_type_unit (per_cu->cu, item.pretend_language);
else
- process_full_comp_unit (per_cu, dwarf2_per_objfile,
- item.pretend_language);
+ process_full_comp_unit (per_cu->cu, item.pretend_language);
if (dwarf_read_debug >= debug_print_threshold)
fprintf_unfiltered (gdb_stdlog, "Done expanding %s\n", buf);
@@ -9721,15 +9717,13 @@ process_cu_includes (struct dwarf2_per_objfile *dwarf2_per_objfile)
dwarf2_per_objfile->per_bfd->just_read_cus.clear ();
}
-/* Generate full symbol information for PER_CU, whose DIEs have
+/* Generate full symbol information for CU, whose DIEs have
already been loaded into memory. */
static void
-process_full_comp_unit (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *dwarf2_per_objfile,
- enum language pretend_language)
+process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language)
{
- struct dwarf2_cu *cu = per_cu->cu;
+ dwarf2_per_objfile *dwarf2_per_objfile = cu->per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile;
struct gdbarch *gdbarch = objfile->arch ();
CORE_ADDR lowpc, highpc;
@@ -9812,30 +9806,29 @@ process_full_comp_unit (dwarf2_per_cu_data *per_cu,
cust->call_site_htab = cu->call_site_htab;
}
- dwarf2_per_objfile->set_symtab (per_cu, cust);
+ dwarf2_per_objfile->set_symtab (cu->per_cu, cust);
/* Push it for inclusion processing later. */
- dwarf2_per_objfile->per_bfd->just_read_cus.push_back (per_cu);
+ dwarf2_per_objfile->per_bfd->just_read_cus.push_back (cu->per_cu);
/* Not needed any more. */
cu->reset_builder ();
}
-/* Generate full symbol information for type unit PER_CU, whose DIEs have
+/* Generate full symbol information for type unit CU, whose DIEs have
already been loaded into memory. */
static void
-process_full_type_unit (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *dwarf2_per_objfile,
+process_full_type_unit (dwarf2_cu *cu,
enum language pretend_language)
{
- struct dwarf2_cu *cu = per_cu->cu;
+ dwarf2_per_objfile *dwarf2_per_objfile = cu->per_objfile;
struct objfile *objfile = dwarf2_per_objfile->objfile;
struct compunit_symtab *cust;
struct signatured_type *sig_type;
- gdb_assert (per_cu->is_debug_types);
- sig_type = (struct signatured_type *) per_cu;
+ gdb_assert (cu->per_cu->is_debug_types);
+ sig_type = (struct signatured_type *) cu->per_cu;
/* Clear the list here in case something was left over. */
cu->method_list.clear ();
@@ -9887,7 +9880,7 @@ process_full_type_unit (dwarf2_per_cu_data *per_cu,
cust = tug_unshare->compunit_symtab;
}
- dwarf2_per_objfile->set_symtab (per_cu, cust);
+ dwarf2_per_objfile->set_symtab (cu->per_cu, cust);
/* Not needed any more. */
cu->reset_builder ();