[binutils-gdb] gdb/dwarf: use ranged for loop in some spots

Simon Marchi simark@sourceware.org
Thu Mar 13 02:32:35 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=292041562289a00364ff9baba6a0446ea208a174

commit 292041562289a00364ff9baba6a0446ea208a174
Author: Simon Marchi <simon.marchi@efficios.com>
Date:   Mon Mar 10 14:40:59 2025 -0400

    gdb/dwarf: use ranged for loop in some spots
    
    I noticed that these loops could be written to avoid the iteration
    variable `i`.
    
    Change-Id: I8b58eb9913b6ac8505ee45eb8009ef7027236cb9

Diff:
---
 gdb/dwarf2/index-write.c | 14 +++++---------
 gdb/dwarf2/read.c        |  7 ++-----
 2 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/gdb/dwarf2/index-write.c b/gdb/dwarf2/index-write.c
index 9d876b1b93c..8fb59318538 100644
--- a/gdb/dwarf2/index-write.c
+++ b/gdb/dwarf2/index-write.c
@@ -1317,11 +1317,9 @@ write_gdbindex (dwarf2_per_bfd *per_bfd, cooked_index *table,
      work here.  */
 
   int counter = 0;
-  for (int i = 0; i < per_bfd->all_units.size (); ++i)
+  for (const dwarf2_per_cu_up &per_cu : per_bfd->all_units)
     {
-      dwarf2_per_cu *per_cu = per_bfd->all_units[i].get ();
-
-      const auto insertpair = cu_index_htab.emplace (per_cu, counter);
+      const auto insertpair = cu_index_htab.emplace (per_cu.get (), counter);
       gdb_assert (insertpair.second);
 
       /* See enhancement PR symtab/30838.  */
@@ -1337,7 +1335,7 @@ write_gdbindex (dwarf2_per_bfd *per_bfd, cooked_index *table,
 			   to_underlying (per_cu->sect_off));
       if (per_cu->is_debug_types)
 	{
-	  signatured_type *sig_type = (signatured_type *) per_cu;
+	  signatured_type *sig_type = (signatured_type *) per_cu.get ();
 	  cu_list.append_uint (8, BFD_ENDIAN_LITTLE,
 			       to_underlying (sig_type->type_offset_in_tu));
 	  cu_list.append_uint (8, BFD_ENDIAN_LITTLE,
@@ -1400,14 +1398,12 @@ write_debug_names (dwarf2_per_bfd *per_bfd, cooked_index *table,
   debug_names nametable (per_bfd, dwarf5_is_dwarf64, dwarf5_byte_order);
   int counter = 0;
   int types_counter = 0;
-  for (int i = 0; i < per_bfd->all_units.size (); ++i)
+  for (const dwarf2_per_cu_up &per_cu : per_bfd->all_units)
     {
-      dwarf2_per_cu *per_cu = per_bfd->all_units[i].get ();
-
       int &this_counter = per_cu->is_debug_types ? types_counter : counter;
       data_buf &this_list = per_cu->is_debug_types ? types_cu_list : cu_list;
 
-      nametable.add_cu (per_cu, this_counter);
+      nametable.add_cu (per_cu.get (), this_counter);
       this_list.append_uint (nametable.dwarf5_offset_size (),
 			     dwarf5_byte_order,
 			     to_underlying (per_cu->sect_off));
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index a25daa36d38..f7ebcc91e7e 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -1966,18 +1966,15 @@ void
 dwarf2_base_index_functions::expand_all_symtabs (struct objfile *objfile)
 {
   dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
-  int total_units = per_objfile->per_bfd->all_units.size ();
 
-  for (int i = 0; i < total_units; ++i)
+  for (const dwarf2_per_cu_up &per_cu : per_objfile->per_bfd->all_units)
     {
-      dwarf2_per_cu *per_cu = per_objfile->per_bfd->get_cu (i);
-
       /* We don't want to directly expand a partial CU, because if we
 	 read it with the wrong language, then assertion failures can
 	 be triggered later on.  See PR symtab/23010.  So, tell
 	 dw2_instantiate_symtab to skip partial CUs -- any important
 	 partial CU will be read via DW_TAG_imported_unit anyway.  */
-      dw2_instantiate_symtab (per_cu, per_objfile, true);
+      dw2_instantiate_symtab (per_cu.get (), per_objfile, true);
     }
 }


More information about the Gdb-cvs mailing list