mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 07:08:01 +08:00
Remove ALL_BLOCK_SYMBOLS
This removes ALL_BLOCK_SYMBOLS in favor of foreach.
This commit is contained in:
@ -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;
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
|
@ -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 ();
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
17
gdb/stack.c
17
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,7 +2481,8 @@ 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 (),
|
||||
struct symbol *sym2
|
||||
= lookup_symbol_search_name (sym->search_name (),
|
||||
b, VAR_DOMAIN).symbol;
|
||||
cb (sym->print_name (), sym2);
|
||||
}
|
||||
|
32
gdb/symtab.c
32
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))
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user