]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb: make iterate_over_symbols return void, rename to for_each_symbol
authorSimon Marchi <simon.marchi@polymtl.ca>
Thu, 16 Apr 2026 20:16:21 +0000 (16:16 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Fri, 17 Apr 2026 19:30:33 +0000 (15:30 -0400)
Nothing really uses the return value of iterate_over_symbols and
language::iterate_over_symbols.  Also, all provided callback always
return true, iterating on all matching symbols.  Simplify them to not
return a value and not have the "stop iterating" feature.

Rename to for_each_symbol, just to be consistent with previous patches.

Also rename symbol_found_callback_ftype to
for_each_symbol_callback_ftype for consistency.

Change-Id: I55ff3162098bb069dc1de1afca10dd9abfc05c34
Approved-By: Andrew Burgess <aburgess@redhat.com>
gdb/ada-lang.c
gdb/language.h
gdb/linespec.c
gdb/linux-nat.c
gdb/nat/linux-nat.h
gdb/symtab.c
gdb/symtab.h

index d388a301fa1a574409b16e2ac5c220c323f23d43..71a338ce17efabc0661d2e5fe5c095edac108f43 100644 (file)
@@ -5427,7 +5427,7 @@ struct match_data
   }
   DISABLE_COPY_AND_ASSIGN (match_data);
 
-  bool operator() (struct block_symbol *bsym);
+  void operator() (struct block_symbol *bsym);
 
   void finish (const block *block);
 
@@ -5452,14 +5452,14 @@ match_data::finish (const block *block)
 /* A callback for add_nonlocal_symbols that adds symbol, found in
    BSYM, to a list of symbols.  */
 
-bool
+void
 match_data::operator() (struct block_symbol *bsym)
 {
   const struct block *block = bsym->block;
   struct symbol *sym = bsym->symbol;
 
   if (sym->loc_class () == LOC_UNRESOLVED)
-    return true;
+    return;
   else if (sym->is_argument ())
     arg_sym = sym;
   else
@@ -5467,8 +5467,6 @@ match_data::operator() (struct block_symbol *bsym)
       found_sym = true;
       add_defn_to_vec (*resultp, sym, block);
     }
-
-  return true;
 }
 
 /* Helper for add_nonlocal_symbols.  Find symbols in DOMAIN which are
@@ -5563,10 +5561,7 @@ map_matching_symbols (struct objfile *objfile,
     {
       const struct block *block
        = symtab->blockvector ()->block (block_kind);
-      /* match_data::operator() always returns true; we ignore the
-        result but assert just to be future-proof.  */
-      bool result = iterate_over_symbols (block, lookup_name, domain, data);
-      gdb_assert (result);
+      for_each_symbol (block, lookup_name, domain, data);
       data.finish (block);
       return iteration_status::keep_going;
     };
@@ -5664,9 +5659,8 @@ ada_add_all_symbols (std::vector<struct block_symbol> &result,
        ada_add_local_symbols (result, lookup_name, block, domain);
       else
        {
-         /* In the !full_search case we're are being called by
-            iterate_over_symbols, and we don't want to search
-            superblocks.  */
+         /* In the !full_search case we're being called by for_each_symbol, and
+            we don't want to search superblocks.  */
          ada_add_block_symbols (result, block, lookup_name, domain, NULL);
        }
       if (!result.empty () || !full_search)
@@ -13702,20 +13696,15 @@ public:
 
   /* See language.h.  */
 
-  bool iterate_over_symbols
+  void for_each_symbol
        (const struct block *block, const lookup_name_info &name,
         domain_search_flags domain,
-        symbol_found_callback_ftype callback) const override
+        for_each_symbol_callback_ftype callback) const override
   {
     std::vector<struct block_symbol> results
       = ada_lookup_symbol_list_worker (name, block, domain, 0);
     for (block_symbol &sym : results)
-      {
-       if (!callback (&sym))
-         return false;
-      }
-
-    return true;
+      callback (&sym);
   }
 
   /* See language.h.  */
index 0cc075f8a29582dde6799b8f665a87d09b7f9416..b43dae661071eca509ab3174ce27f3a644d615ba 100644 (file)
@@ -353,18 +353,13 @@ struct language_defn
      The caller is responsible for iterating up through superblocks
      if desired.
 
-     For each one, call CALLBACK with the symbol.  If CALLBACK
-     returns false, the iteration ends at that point.
-
-     This field may not be NULL.  If the language does not need any
-     special processing here, 'iterate_over_symbols' should be
-     used as the definition.  */
-  virtual bool iterate_over_symbols
+     For each one, call CALLBACK with the symbol.  */
+  virtual void for_each_symbol
        (const struct block *block, const lookup_name_info &name,
         domain_search_flags domain,
-        symbol_found_callback_ftype callback) const
+        for_each_symbol_callback_ftype callback) const
   {
-    return ::iterate_over_symbols (block, name, domain, callback);
+    ::for_each_symbol (block, name, domain, callback);
   }
 
   /* Return a pointer to the function that should be used to match a
index bfdd075ac8253fb38cd433e957949f6b97c7f5b7..45e12e0927252ac03015ed93d9d8cdafe228365e 100644 (file)
@@ -237,17 +237,14 @@ struct collect_info
   std::vector<bound_minimal_symbol> *minimal_symbols;
 
   /* Possibly add a symbol to the results.  */
-  bool add_symbol (block_symbol *bsym);
+  void add_symbol (block_symbol *bsym);
 };
 
-bool
+void
 collect_info::add_symbol (block_symbol *bsym)
 {
   if (record_all || bsym->symbol->loc_class () == LOC_BLOCK)
     this->symbols->push_back (*bsym);
-
-  /* Continue iterating.  */
-  return true;
 }
 
 /* Token types  */
@@ -363,7 +360,7 @@ struct linespec_parser
 static void iterate_over_file_blocks
   (struct symtab *symtab, const lookup_name_info &name,
    domain_search_flags domain,
-   symbol_found_callback_ftype callback);
+   for_each_symbol_callback_ftype callback);
 
 static void initialize_defaults (struct symtab **default_symtab,
                                 int *default_line);
@@ -1128,7 +1125,7 @@ iterate_over_all_matching_symtabs
    const lookup_name_info &lookup_name,
    const domain_search_flags domain,
    struct program_space *search_pspace, bool include_inline,
-   symbol_found_callback_ftype callback)
+   for_each_symbol_callback_ftype callback)
 {
   for (struct program_space *pspace : program_spaces)
     {
@@ -1156,15 +1153,14 @@ iterate_over_all_matching_symtabs
                  for (i = FIRST_LOCAL_BLOCK; i < bv->num_blocks (); i++)
                    {
                      block = bv->block (i);
-                     state->language->iterate_over_symbols
+                     state->language->for_each_symbol
                        (block, lookup_name, domain,
                         [&] (block_symbol *bsym)
                         {
                           /* Restrict calls to CALLBACK to symbols
                              representing inline symbols only.  */
                           if (bsym->symbol->is_inlined ())
-                            return callback (bsym);
-                          return true;
+                            callback (bsym);
                         });
                    }
                }
@@ -1196,14 +1192,14 @@ static void
 iterate_over_file_blocks
   (struct symtab *symtab, const lookup_name_info &name,
    domain_search_flags domain,
-   symbol_found_callback_ftype callback)
+   for_each_symbol_callback_ftype callback)
 {
   const struct block *block;
 
   for (block = symtab->compunit ()->blockvector ()->static_block ();
        block != NULL;
        block = block->superblock ())
-    current_language->iterate_over_symbols (block, name, domain, callback);
+    current_language->for_each_symbol (block, name, domain, callback);
 }
 
 /* A helper for find_method.  This finds all methods in type T of
@@ -3325,8 +3321,8 @@ decode_objc (struct linespec_state *self, linespec *ls, const char *arg)
 
 namespace {
 
-/* A function object that serves as symbol_found_callback_ftype
-   callback for iterate_over_symbols.  This is used by
+/* A function object that serves as for_each_symbol_callback_ftype
+   callback for for_each_symbol.  This is used by
    lookup_prefix_sym to collect type symbols.  */
 class decode_compound_collector
 {
@@ -3341,8 +3337,8 @@ public:
     return std::move (m_symbols);
   }
 
-  /* Callable as a symbol_found_callback_ftype callback.  */
-  bool operator () (block_symbol *bsym);
+  /* Callable as a for_each_symbol_callback_ftype callback.  */
+  void operator () (block_symbol *bsym);
 
 private:
   /* A hash table of all symbols we found.  We use this to avoid
@@ -3353,26 +3349,24 @@ private:
   std::vector<block_symbol>  m_symbols;
 };
 
-bool
+void
 decode_compound_collector::operator () (block_symbol *bsym)
 {
   struct type *t;
   struct symbol *sym = bsym->symbol;
 
   if (sym->loc_class () != LOC_TYPEDEF)
-    return true; /* Continue iterating.  */
+    return;
 
   t = sym->type ();
   t = check_typedef (t);
   if (t->code () != TYPE_CODE_STRUCT
       && t->code () != TYPE_CODE_UNION
       && t->code () != TYPE_CODE_NAMESPACE)
-    return true; /* Continue iterating.  */
+    return;
 
   if (m_unique_syms.insert (sym).second)
     m_symbols.push_back (*bsym);
-
-  return true; /* Continue iterating.  */
 }
 
 } // namespace
@@ -4245,7 +4239,7 @@ add_matching_symbols_to_info (const char *name,
 
   auto add_symbol = [&] (block_symbol *bsym)
     {
-      return info->add_symbol (bsym);
+      info->add_symbol (bsym);
     };
 
   for (const auto &elt : info->file_symtabs)
index 15fca3f6d35ef758807fbc79d5b89228dc12713c..6018d6c9914086d48e695bd551103fc1b44ec2c2 100644 (file)
@@ -939,7 +939,7 @@ for_each_lwp (int pid, for_each_lwp_ftype callback)
 
 /* Iterate over all LWPs, calling CALLBACK for every LWP.
 
-   Only consider the LWPs matching FILTER.  */
+   Only consider the LWPs that match FILTER.  */
 
 static void
 for_each_lwp (ptid_t filter, for_each_lwp_ftype callback)
@@ -2951,7 +2951,7 @@ select_event_lwp (ptid_t filter, struct lwp_info **orig_lp, int *status)
   (*orig_lp)->status = 0;
 }
 
-/* Return non-zero if LP has been resumed.  */
+/* Return true if LP has been resumed.  */
 
 static bool
 resumed_callback (struct lwp_info *lp)
index 4414749b93de91c5f8a04a7714ba80e1949565ab..1eec5b5b614f34623e7395d68f12e8b05a3882d5 100644 (file)
@@ -52,7 +52,7 @@ using for_each_lwp_ftype = gdb::function_view<void (lwp_info *lwp)>;
 
 /* Iterate over all LWPs, calling CALLBACK for every LWP.
 
-   Only consider the LWPs with that pid.  */
+   Only consider the LWPs that match PID.  */
 
 extern void for_each_lwp (int pid, for_each_lwp_ftype callback);
 
index 6fba0cd838ae567f80aa90b56da327b8ec4b4ccf..357b8e63b19e9f1b0cb8b67c7d747bd6574b60c9 100644 (file)
@@ -2697,23 +2697,18 @@ lookup_transparent_type (const char *name, domain_search_flags flags)
 
 /* See symtab.h.  */
 
-bool
-iterate_over_symbols (const struct block *block,
-                     const lookup_name_info &name,
-                     const domain_search_flags domain,
-                     symbol_found_callback_ftype callback)
+void
+for_each_symbol (const struct block *block, const lookup_name_info &name,
+                const domain_search_flags domain,
+                for_each_symbol_callback_ftype callback)
 {
   for (struct symbol *sym : block_iterator_range (block, &name))
-    {
-      if (sym->matches (domain))
-       {
-         struct block_symbol block_sym = {sym, block};
+    if (sym->matches (domain))
+      {
+       block_symbol block_sym = { sym, block };
 
-         if (!callback (&block_sym))
-           return false;
-       }
-    }
-  return true;
+       callback (&block_sym);
+      }
 }
 
 /* Find the compunit symtab associated with PC and SECTION.
index b8e8caf8d5f021576b058fa44846b69012fb4344..7b1a8238613149a40828222af624feabade304ad 100644 (file)
@@ -2808,26 +2808,18 @@ using find_symtab_callback_ftype = std::function<bool (symtab *)>;
 std::vector<const linetable_entry *> find_linetable_entries_for_symtab_line
     (struct symtab *symtab, int line, const linetable_entry **best_entry);
 
-/* Prototype for callbacks for LA_ITERATE_OVER_SYMBOLS.  The callback
-   is called once per matching symbol SYM.  The callback should return
-   true to indicate that LA_ITERATE_OVER_SYMBOLS should continue
-   iterating, or false to indicate that the iteration should end.  */
+/* Callback type for function for_each_symbol.  */
 
-using symbol_found_callback_ftype = gdb::function_view<bool (block_symbol *)>;
+using for_each_symbol_callback_ftype
+  = gdb::function_view<void (block_symbol *)>;
 
 /* Iterate over the symbols named NAME, matching DOMAIN, in BLOCK.
 
-   For each symbol that matches, CALLBACK is called.  The symbol is
-   passed to the callback.
+   For each symbol that matches, call CALLBACK with the symbol.  */
 
-   If CALLBACK returns false, the iteration ends and this function
-   returns false.  Otherwise, the search continues, and the function
-   eventually returns true.  */
-
-bool iterate_over_symbols (const struct block *block,
-                          const lookup_name_info &name,
-                          const domain_search_flags domain,
-                          symbol_found_callback_ftype callback);
+void for_each_symbol (const struct block *block, const lookup_name_info &name,
+                     const domain_search_flags domain,
+                     for_each_symbol_callback_ftype callback);
 
 /* Storage type used by demangle_for_lookup.  demangle_for_lookup
    either returns a const char * pointer that points to either of the