Remove ALL_BLOCK_SYMBOLS
authorTom Tromey <tom@tromey.com>
Fri, 20 Jan 2023 03:25:55 +0000 (20:25 -0700)
committerTom Tromey <tom@tromey.com>
Sun, 19 Feb 2023 19:51:06 +0000 (12:51 -0700)
This removes ALL_BLOCK_SYMBOLS in favor of foreach.

12 files changed:
gdb/ada-lang.c
gdb/block.h
gdb/buildsym.c
gdb/coffread.c
gdb/f-valprint.c
gdb/infrun.c
gdb/linespec.c
gdb/mdebugread.c
gdb/mi/mi-cmd-stack.c
gdb/stack.c
gdb/symtab.c
gdb/tracepoint.c

index a25fc3320287f7e1bdee8480ca806a521d03acfd..7c528ab629f60dcbdfb274f95f6e410c8fd64b1d 100644 (file)
@@ -6111,10 +6111,8 @@ ada_add_block_symbols (std::vector<struct block_symbol> &result,
       const std::string &ada_lookup_name = lookup_name.ada ().lookup_name ();
       const char *name = ada_lookup_name.c_str ();
       size_t name_len = ada_lookup_name.size ();
-      struct symbol *sym;
-      struct block_iterator iter;
 
-      ALL_BLOCK_SYMBOLS (block, iter, sym)
+      for (struct symbol *sym : block_iterator_range (block))
       {
        if (symbol_matches_domain (sym->language (),
                                   sym->domain (), domain))
@@ -13049,10 +13047,7 @@ ada_add_exceptions_from_frame (compiled_regex *preg,
 
   while (block != 0)
     {
-      struct block_iterator iter;
-      struct symbol *sym;
-
-      ALL_BLOCK_SYMBOLS (block, iter, sym)
+      for (struct symbol *sym : block_iterator_range (block))
        {
          switch (sym->aclass ())
            {
@@ -13134,10 +13129,8 @@ ada_add_global_exceptions (compiled_regex *preg,
          for (i = GLOBAL_BLOCK; i <= STATIC_BLOCK; i++)
            {
              const struct block *b = bv->block (i);
-             struct block_iterator iter;
-             struct symbol *sym;
 
-             ALL_BLOCK_SYMBOLS (b, iter, sym)
+             for (struct symbol *sym : block_iterator_range (b))
                if (ada_is_non_standard_exception_sym (sym)
                    && name_matches_regex (sym->natural_name (), preg))
                  {
@@ -13639,9 +13632,7 @@ public:
                                          const char *text, const char *word,
                                          enum type_code code) const override
   {
-    struct symbol *sym;
     const struct block *b, *surrounding_static_block = 0;
-    struct block_iterator iter;
 
     gdb_assert (code == TYPE_CODE_UNDEF);
 
@@ -13701,7 +13692,7 @@ public:
        if (!b->superblock ())
          surrounding_static_block = b;   /* For elmin of dups */
 
-       ALL_BLOCK_SYMBOLS (b, iter, sym)
+       for (struct symbol *sym : block_iterator_range (b))
          {
            if (completion_skip_symbol (mode, sym))
              continue;
@@ -13722,7 +13713,7 @@ public:
          {
            QUIT;
            b = s->blockvector ()->global_block ();
-           ALL_BLOCK_SYMBOLS (b, iter, sym)
+           for (struct symbol *sym : block_iterator_range (b))
              {
                if (completion_skip_symbol (mode, sym))
                  continue;
@@ -13744,7 +13735,7 @@ public:
            /* Don't do this block twice.  */
            if (b == surrounding_static_block)
              continue;
-           ALL_BLOCK_SYMBOLS (b, iter, sym)
+           for (struct symbol *sym : block_iterator_range (b))
              {
                if (completion_skip_symbol (mode, sym))
                  continue;
index 35c41377f2cbdb1e7d3c8d1b59cc264808da6cac..6ccf3766d8ff3d1e3eb6e60ae38141eca68101ea 100644 (file)
@@ -595,15 +595,6 @@ extern int block_find_non_opaque_type (struct symbol *sym, void *data);
 extern int block_find_non_opaque_type_preferred (struct symbol *sym,
                                                 void *data);
 
-/* Macro to loop through all symbols in BLOCK, in no particular
-   order.  ITER helps keep track of the iteration, and must be a
-   struct block_iterator.  SYM points to the current symbol.  */
-
-#define ALL_BLOCK_SYMBOLS(block, iter, sym)            \
-  for ((sym) = block_iterator_first ((block), &(iter));        \
-       (sym);                                          \
-       (sym) = block_iterator_next (&(iter)))
-
 /* Given a vector of pairs, allocate and build an obstack allocated
    blockranges struct for a block.  */
 struct blockranges *make_blockranges (struct objfile *objfile,
index b76fef37400b5eaedcf72e451c38684cfb7989b3..10b8fc6cecbc6bd8b52d5f60cd8f7aed6316fad2 100644 (file)
@@ -997,7 +997,7 @@ buildsym_compunit::end_compunit_symtab_with_blockvector
 
        /* Note that we only want to fix up symbols from the local
           blocks, not blocks coming from included symtabs.  That is why
-          we use ALL_DICT_SYMBOLS here and not ALL_BLOCK_SYMBOLS.  */
+          we use ALL_DICT_SYMBOLS here and not a block iterator.  */
        ALL_DICT_SYMBOLS (block->multidict (), miter, sym)
          if (sym->symtab () == NULL)
            sym->set_symtab (symtab);
index 65d7828e9332db901dc3a93b8a4dd90ae1c54fa9..45542bc2432dace5e3454561caf592db4f085ea0 100644 (file)
@@ -1503,12 +1503,9 @@ patch_type (struct type *type, struct type *real_type)
 static void
 patch_opaque_types (struct symtab *s)
 {
-  struct block_iterator iter;
-  struct symbol *real_sym;
-
   /* Go through the per-file symbols only.  */
   const struct block *b = s->compunit ()->blockvector ()->static_block ();
-  ALL_BLOCK_SYMBOLS (b, iter, real_sym)
+  for (struct symbol *real_sym : block_iterator_range (b))
     {
       /* Find completed typedefs to use to fix opaque ones.
         Remove syms from the chain when their types are stored,
index e96892947af8d941cabdc2be26cb42825bc0b99c..52bebae17fe9d150055f61b2860bc4e303d5d216 100644 (file)
@@ -618,13 +618,11 @@ static void
 info_common_command_for_block (const struct block *block, const char *comname,
                               int *any_printed)
 {
-  struct block_iterator iter;
-  struct symbol *sym;
   struct value_print_options opts;
 
   get_user_print_options (&opts);
 
-  ALL_BLOCK_SYMBOLS (block, iter, sym)
+  for (struct symbol *sym : block_iterator_range (block))
     if (sym->domain () == COMMON_BLOCK_DOMAIN)
       {
        const struct common_block *common = sym->value_common_block ();
index 75725f5e0ffc00aa5d1ed871b8f80ec1a15a9fa6..3629db0443a3a7b727d93f27b46ca38863b90e91 100644 (file)
@@ -8123,8 +8123,6 @@ check_exception_resume (struct execution_control_state *ecs,
   try
     {
       const struct block *b;
-      struct block_iterator iter;
-      struct symbol *sym;
       int argno = 0;
 
       /* The exception breakpoint is a thread-specific breakpoint on
@@ -8142,7 +8140,7 @@ check_exception_resume (struct execution_control_state *ecs,
         handler.  */
 
       b = func->value_block ();
-      ALL_BLOCK_SYMBOLS (b, iter, sym)
+      for (struct symbol *sym : block_iterator_range (b))
        {
          if (!sym->is_argument ())
            continue;
index 7edfee22ea7350aa1da01483ec4ce220b546bc71..36f2ef46a7c3a211c73fa54e6341e335c3d0dea0 100644 (file)
@@ -3900,14 +3900,12 @@ find_label_symbols_in_block (const struct block *block,
 {
   if (completion_mode)
     {
-      struct block_iterator iter;
-      struct symbol *sym;
       size_t name_len = strlen (name);
 
       int (*cmp) (const char *, const char *, size_t);
       cmp = case_sensitivity == case_sensitive_on ? strncmp : strncasecmp;
 
-      ALL_BLOCK_SYMBOLS (block, iter, sym)
+      for (struct symbol *sym : block_iterator_range (block))
        {
          if (symbol_matches_domain (sym->language (),
                                     sym->domain (), LABEL_DOMAIN)
index 609b51727aa8a5173a9c744960652bceb7fe8d4f..3b567637743f01923a0f1e3bcded63c928f8fb12 100644 (file)
@@ -1193,19 +1193,16 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
                 type.  Set that from the type of the parameter symbols.  */
              int nparams = top_stack->numargs;
              int iparams;
-             struct symbol *sym;
 
              if (nparams > 0)
                {
-                 struct block_iterator iter;
-
                  ftype->set_num_fields (nparams);
                  ftype->set_fields
                    ((struct field *)
                     TYPE_ALLOC (ftype, nparams * sizeof (struct field)));
 
                  iparams = 0;
-                 ALL_BLOCK_SYMBOLS (cblock, iter, sym)
+                 for (struct symbol *sym : block_iterator_range (cblock))
                    {
                      if (iparams == nparams)
                        break;
@@ -4464,12 +4461,10 @@ static struct symbol *
 mylookup_symbol (const char *name, const struct block *block,
                 domain_enum domain, enum address_class theclass)
 {
-  struct block_iterator iter;
   int inc;
-  struct symbol *sym;
 
   inc = name[0];
-  ALL_BLOCK_SYMBOLS (block, iter, sym)
+  for (struct symbol *sym : block_iterator_range (block))
     {
       if (sym->linkage_name ()[0] == inc
          && sym->domain () == domain
index 1554f9550e65681538994eda4bd25ee1b8cdcea1..4c4662ab5d73cef358c2ae4459a6b30d3ff61b36 100644 (file)
@@ -568,8 +568,6 @@ list_args_or_locals (const frame_print_options &fp_opts,
                     frame_info_ptr fi, int skip_unavailable)
 {
   const struct block *block;
-  struct symbol *sym;
-  struct block_iterator iter;
   const char *name_of_result;
   struct ui_out *uiout = current_uiout;
 
@@ -594,7 +592,7 @@ list_args_or_locals (const frame_print_options &fp_opts,
 
   while (block != 0)
     {
-      ALL_BLOCK_SYMBOLS (block, iter, sym)
+      for (struct symbol *sym : block_iterator_range (block))
        {
          int print_me = 0;
 
index a26f65af1c454a93a7d427e987506c45335c0d13..03e903d901b686cc0d3d64fae332e4e8286cbdbb 100644 (file)
@@ -751,10 +751,8 @@ print_frame_args (const frame_print_options &fp_opts,
   if (func)
     {
       const struct block *b = func->value_block ();
-      struct block_iterator iter;
-      struct symbol *sym;
 
-      ALL_BLOCK_SYMBOLS (b, iter, sym)
+      for (struct symbol *sym : block_iterator_range (b))
        {
          struct frame_arg arg, entryarg;
 
@@ -2221,10 +2219,7 @@ static void
 iterate_over_block_locals (const struct block *b,
                           iterate_over_block_arg_local_vars_cb cb)
 {
-  struct block_iterator iter;
-  struct symbol *sym;
-
-  ALL_BLOCK_SYMBOLS (b, iter, sym)
+  for (struct symbol *sym : block_iterator_range (b))
     {
       switch (sym->aclass ())
        {
@@ -2470,10 +2465,7 @@ void
 iterate_over_block_arg_vars (const struct block *b,
                             iterate_over_block_arg_local_vars_cb cb)
 {
-  struct block_iterator iter;
-  struct symbol *sym, *sym2;
-
-  ALL_BLOCK_SYMBOLS (b, iter, sym)
+  for (struct symbol *sym : block_iterator_range (b))
     {
       /* Don't worry about things which aren't arguments.  */
       if (sym->is_argument ())
@@ -2489,8 +2481,9 @@ iterate_over_block_arg_vars (const struct block *b,
             float).  There are also LOC_ARG/LOC_REGISTER pairs which
             are not combined in symbol-reading.  */
 
-         sym2 = lookup_symbol_search_name (sym->search_name (),
-                                           b, VAR_DOMAIN).symbol;
+         struct symbol *sym2
+           = lookup_symbol_search_name (sym->search_name (),
+                                        b, VAR_DOMAIN).symbol;
          cb (sym->print_name (), sym2);
        }
     }
index 9508dcfc504f3298927f427673fbf1720966a709..25b55ed01e7cb116444fa637eeb8fad7b880325b 100644 (file)
@@ -2880,22 +2880,24 @@ find_pc_sect_compunit_symtab (CORE_ADDR pc, struct obj_section *section)
 
          if (section != 0)
            {
-             struct symbol *sym = NULL;
-             struct block_iterator iter;
+             struct symbol *found_sym = nullptr;
 
              for (int b_index = GLOBAL_BLOCK;
-                  b_index <= STATIC_BLOCK && sym == NULL;
+                  b_index <= STATIC_BLOCK && found_sym == nullptr;
                   ++b_index)
                {
                  const struct block *b = bv->block (b_index);
-                 ALL_BLOCK_SYMBOLS (b, iter, sym)
+                 for (struct symbol *sym : block_iterator_range (b))
                    {
                      if (matching_obj_sections (sym->obj_section (obj_file),
                                                 section))
-                       break;
+                       {
+                         found_sym = sym;
+                         break;
+                       }
                    }
                }
-             if (sym == NULL)
+             if (found_sym == nullptr)
                continue;               /* No symbol in this symtab matches
                                           section.  */
            }
@@ -2946,10 +2948,8 @@ find_symbol_at_address (CORE_ADDR address)
       for (int i = GLOBAL_BLOCK; i <= STATIC_BLOCK; ++i)
        {
          const struct block *b = bv->block (i);
-         struct block_iterator iter;
-         struct symbol *sym;
 
-         ALL_BLOCK_SYMBOLS (b, iter, sym)
+         for (struct symbol *sym : block_iterator_range (b))
            {
              if (sym->aclass () == LOC_STATIC
                  && sym->value_address () == addr)
@@ -4709,11 +4709,9 @@ global_symbol_searcher::add_matching_symbols
 
       for (block_enum block : { GLOBAL_BLOCK, STATIC_BLOCK })
        {
-         struct block_iterator iter;
-         struct symbol *sym;
          const struct block *b = bv->block (block);
 
-         ALL_BLOCK_SYMBOLS (b, iter, sym)
+         for (struct symbol *sym : block_iterator_range (b))
            {
              struct symtab *real_symtab = sym->symtab ();
 
@@ -5673,8 +5671,6 @@ add_symtab_completions (struct compunit_symtab *cust,
                        const char *text, const char *word,
                        enum type_code code)
 {
-  struct symbol *sym;
-  struct block_iterator iter;
   int i;
 
   if (cust == NULL)
@@ -5685,7 +5681,7 @@ add_symtab_completions (struct compunit_symtab *cust,
       QUIT;
 
       const struct block *b = cust->blockvector ()->block (i);
-      ALL_BLOCK_SYMBOLS (b, iter, sym)
+      for (struct symbol *sym : block_iterator_range (b))
        {
          if (completion_skip_symbol (mode, sym))
            continue;
@@ -5711,10 +5707,8 @@ default_collect_symbol_completion_matches_break_on
      frees them.  I'm not going to worry about this; hopefully there
      won't be that many.  */
 
-  struct symbol *sym;
   const struct block *b;
   const struct block *surrounding_static_block, *surrounding_global_block;
-  struct block_iterator iter;
   /* The symbol we are completing on.  Points in same buffer as text.  */
   const char *sym_text;
 
@@ -5835,7 +5829,7 @@ default_collect_symbol_completion_matches_break_on
       {
        QUIT;
 
-       ALL_BLOCK_SYMBOLS (b, iter, sym)
+       for (struct symbol *sym : block_iterator_range (b))
          {
            if (code == TYPE_CODE_UNDEF)
              {
@@ -5863,12 +5857,12 @@ default_collect_symbol_completion_matches_break_on
   if (code == TYPE_CODE_UNDEF)
     {
       if (surrounding_static_block != NULL)
-       ALL_BLOCK_SYMBOLS (surrounding_static_block, iter, sym)
+       for (struct symbol *sym : block_iterator_range (surrounding_static_block))
          completion_list_add_fields (tracker, sym, lookup_name,
                                      sym_text, word);
 
       if (surrounding_global_block != NULL)
-       ALL_BLOCK_SYMBOLS (surrounding_global_block, iter, sym)
+       for (struct symbol *sym : block_iterator_range (surrounding_global_block))
          completion_list_add_fields (tracker, sym, lookup_name,
                                      sym_text, word);
     }
index 1c1fea7d9704c973e496b0bff7c95f8fc5e57a33..c8bac7a01221450b53b001eaa7549c768617d833 100644 (file)
@@ -2459,12 +2459,10 @@ tfind_outside_command (const char *args, int from_tty)
 static void
 info_scope_command (const char *args_in, int from_tty)
 {
-  struct symbol *sym;
   struct bound_minimal_symbol msym;
   const struct block *block;
   const char *symname;
   const char *save_args = args_in;
-  struct block_iterator iter;
   int j, count = 0;
   struct gdbarch *gdbarch;
   int regno;
@@ -2492,7 +2490,7 @@ info_scope_command (const char *args_in, int from_tty)
   while (block != 0)
     {
       QUIT;                    /* Allow user to bail out with ^C.  */
-      ALL_BLOCK_SYMBOLS (block, iter, sym)
+      for (struct symbol *sym : block_iterator_range (block))
        {
          QUIT;                 /* Allow user to bail out with ^C.  */
          if (count == 0)