Add dwarf2_per_objfile parameter to recursively_compute_inclusions
authorSimon Marchi <simon.marchi@efficios.com>
Wed, 27 May 2020 15:13:58 +0000 (11:13 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Wed, 27 May 2020 15:15:55 +0000 (11:15 -0400)
This allows removing dwarf2_per_cu_data::dwarf2_per_objfile references
in recursively_compute_inclusions and compute_compunit_symtab_includes.

gdb/ChangeLog:

* dwarf2/read.c (recursively_compute_inclusions): Add
dwarf2_per_objfile parameter.
(compute_compunit_symtab_includes): Likewise.
(process_cu_includes): Update.

Change-Id: I1ee7f8dfc07b39763985e6764e8ce04dcc943ec5

gdb/ChangeLog
gdb/dwarf2/read.c

index 1308acd068ef505ff0e0fb7cd99281802e46e6c8..4b7898309ec9d32f90cf6aa26fc96f0ada270572 100644 (file)
@@ -1,3 +1,10 @@
+2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
+
+       * dwarf2/read.c (recursively_compute_inclusions): Add
+       dwarf2_per_objfile parameter.
+       (compute_compunit_symtab_includes): Likewise.
+       (process_cu_includes): Update.
+
 2020-05-27  Simon Marchi  <simon.marchi@efficios.com>
 
        * dwarf2/read.c (create_partial_symtab): Add dwarf2_per_objfile
index 3ca7772a46939d42b2c99bef1de5066fd9c724cd..070d8809bda7330760192048023f4906db3fad36 100644 (file)
@@ -9629,7 +9629,8 @@ rust_union_quirks (struct dwarf2_cu *cu)
 static void
 recursively_compute_inclusions (std::vector<compunit_symtab *> *result,
                                htab_t all_children, htab_t all_type_symtabs,
-                               struct dwarf2_per_cu_data *per_cu,
+                               dwarf2_per_cu_data *per_cu,
+                               dwarf2_per_objfile *per_objfile,
                                struct compunit_symtab *immediate_parent)
 {
   void **slot = htab_find_slot (all_children, per_cu, INSERT);
@@ -9642,7 +9643,7 @@ recursively_compute_inclusions (std::vector<compunit_symtab *> *result,
   *slot = per_cu;
 
   /* Only add a CU if it has a symbol table.  */
-  compunit_symtab *cust = per_cu->dwarf2_per_objfile->get_symtab (per_cu);
+  compunit_symtab *cust = per_objfile->get_symtab (per_cu);
   if (cust != NULL)
     {
       /* If this is a type unit only add its symbol table if we haven't
@@ -9670,7 +9671,8 @@ recursively_compute_inclusions (std::vector<compunit_symtab *> *result,
     for (dwarf2_per_cu_data *ptr : *per_cu->imported_symtabs)
       {
        recursively_compute_inclusions (result, all_children,
-                                       all_type_symtabs, ptr, cust);
+                                       all_type_symtabs, ptr, per_objfile,
+                                       cust);
       }
 }
 
@@ -9678,7 +9680,8 @@ recursively_compute_inclusions (std::vector<compunit_symtab *> *result,
    PER_CU.  */
 
 static void
-compute_compunit_symtab_includes (struct dwarf2_per_cu_data *per_cu)
+compute_compunit_symtab_includes (dwarf2_per_cu_data *per_cu,
+                                 dwarf2_per_objfile *per_objfile)
 {
   gdb_assert (! per_cu->is_debug_types);
 
@@ -9687,7 +9690,7 @@ compute_compunit_symtab_includes (struct dwarf2_per_cu_data *per_cu)
       int len;
       std::vector<compunit_symtab *> result_symtabs;
       htab_t all_children, all_type_symtabs;
-      compunit_symtab *cust = per_cu->dwarf2_per_objfile->get_symtab (per_cu);
+      compunit_symtab *cust = per_objfile->get_symtab (per_cu);
 
       /* If we don't have a symtab, we can just skip this case.  */
       if (cust == NULL)
@@ -9701,7 +9704,8 @@ compute_compunit_symtab_includes (struct dwarf2_per_cu_data *per_cu)
       for (dwarf2_per_cu_data *ptr : *per_cu->imported_symtabs)
        {
          recursively_compute_inclusions (&result_symtabs, all_children,
-                                         all_type_symtabs, ptr, cust);
+                                         all_type_symtabs, ptr, per_objfile,
+                                         cust);
        }
 
       /* Now we have a transitive closure of all the included symtabs.  */
@@ -9727,7 +9731,7 @@ process_cu_includes (struct dwarf2_per_objfile *dwarf2_per_objfile)
   for (dwarf2_per_cu_data *iter : dwarf2_per_objfile->per_bfd->just_read_cus)
     {
       if (! iter->is_debug_types)
-       compute_compunit_symtab_includes (iter);
+       compute_compunit_symtab_includes (iter, dwarf2_per_objfile);
     }
 
   dwarf2_per_objfile->per_bfd->just_read_cus.clear ();