From 548a89df2315322d51a6f961d46699663082b626 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 19 Jan 2023 20:25:55 -0700 Subject: [PATCH] Remove ALL_BLOCK_SYMBOLS This removes ALL_BLOCK_SYMBOLS in favor of foreach. --- gdb/ada-lang.c | 21 ++++++--------------- gdb/block.h | 9 --------- gdb/buildsym.c | 2 +- gdb/coffread.c | 5 +---- gdb/f-valprint.c | 4 +--- gdb/infrun.c | 4 +--- gdb/linespec.c | 4 +--- gdb/mdebugread.c | 9 ++------- gdb/mi/mi-cmd-stack.c | 4 +--- gdb/stack.c | 19 ++++++------------- gdb/symtab.c | 34 ++++++++++++++-------------------- gdb/tracepoint.c | 4 +--- 12 files changed, 35 insertions(+), 84 deletions(-) diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index a25fc332028..7c528ab629f 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -6111,10 +6111,8 @@ ada_add_block_symbols (std::vector &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; diff --git a/gdb/block.h b/gdb/block.h index 35c41377f2c..6ccf3766d8f 100644 --- a/gdb/block.h +++ b/gdb/block.h @@ -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, diff --git a/gdb/buildsym.c b/gdb/buildsym.c index b76fef37400..10b8fc6cecb 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -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); diff --git a/gdb/coffread.c b/gdb/coffread.c index 65d7828e933..45542bc2432 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -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, diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c index e96892947af..52bebae17fe 100644 --- a/gdb/f-valprint.c +++ b/gdb/f-valprint.c @@ -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 (); diff --git a/gdb/infrun.c b/gdb/infrun.c index 75725f5e0ff..3629db0443a 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -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; diff --git a/gdb/linespec.c b/gdb/linespec.c index 7edfee22ea7..36f2ef46a7c 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -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) diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c index 609b51727aa..3b567637743 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -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 diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c index 1554f9550e6..4c4662ab5d7 100644 --- a/gdb/mi/mi-cmd-stack.c +++ b/gdb/mi/mi-cmd-stack.c @@ -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; diff --git a/gdb/stack.c b/gdb/stack.c index a26f65af1c4..03e903d901b 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -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); } } diff --git a/gdb/symtab.c b/gdb/symtab.c index 9508dcfc504..25b55ed01e7 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -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); } diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 1c1fea7d970..c8bac7a0122 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -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) -- 2.30.2