diff options
author | Tom Tromey <tom@tromey.com> | 2023-01-19 20:21:10 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2023-02-19 12:51:06 -0700 |
commit | a1b294260f4e43cfb7edb2a917accb82945ed310 (patch) | |
tree | e350a15d6bdf7e464df06cb8cbba357dec884458 | |
parent | 1c49bb455c2b401b508b3f3d5924ba461e153ad4 (diff) | |
download | binutils-a1b294260f4e43cfb7edb2a917accb82945ed310.zip binutils-a1b294260f4e43cfb7edb2a917accb82945ed310.tar.gz binutils-a1b294260f4e43cfb7edb2a917accb82945ed310.tar.bz2 |
Remove ALL_BLOCK_SYMBOLS_WITH_NAME
This removes ALL_BLOCK_SYMBOLS_WITH_NAME in favor of foreach.
-rw-r--r-- | gdb/block.c | 12 | ||||
-rw-r--r-- | gdb/block.h | 10 | ||||
-rw-r--r-- | gdb/cp-support.c | 5 | ||||
-rw-r--r-- | gdb/python/py-block.c | 22 | ||||
-rw-r--r-- | gdb/symtab.c | 5 |
5 files changed, 13 insertions, 41 deletions
diff --git a/gdb/block.c b/gdb/block.c index e7a51af..0870793 100644 --- a/gdb/block.c +++ b/gdb/block.c @@ -692,16 +692,13 @@ block_lookup_symbol (const struct block *block, const char *name, symbol_name_match_type match_type, const domain_enum domain) { - struct block_iterator iter; - struct symbol *sym; - lookup_name_info lookup_name (name, match_type); if (!block->function ()) { struct symbol *other = NULL; - ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym) + for (struct symbol *sym : block_iterator_range (block, &lookup_name)) { /* See comment related to PR gcc/debug/91507 in block_lookup_symbol_primary. */ @@ -730,7 +727,7 @@ block_lookup_symbol (const struct block *block, const char *name, struct symbol *sym_found = NULL; - ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym) + for (struct symbol *sym : block_iterator_range (block, &lookup_name)) { if (symbol_matches_domain (sym->language (), sym->domain (), domain)) @@ -815,16 +812,13 @@ block_find_symbol (const struct block *block, const char *name, const domain_enum domain, block_symbol_matcher_ftype *matcher, void *data) { - struct block_iterator iter; - struct symbol *sym; - lookup_name_info lookup_name (name, symbol_name_match_type::FULL); /* Verify BLOCK is STATIC_BLOCK or GLOBAL_BLOCK. */ gdb_assert (block->superblock () == NULL || block->superblock ()->superblock () == NULL); - ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym) + for (struct symbol *sym : block_iterator_range (block, &lookup_name)) { /* MATCHER is deliberately called second here so that it never sees a non-domain-matching symbol. */ diff --git a/gdb/block.h b/gdb/block.h index 7341d03..35c4137 100644 --- a/gdb/block.h +++ b/gdb/block.h @@ -604,16 +604,6 @@ extern int block_find_non_opaque_type_preferred (struct symbol *sym, (sym); \ (sym) = block_iterator_next (&(iter))) -/* Macro to loop through all symbols in BLOCK with a name that matches - NAME, 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_WITH_NAME(block, name, iter, sym) \ - for ((sym) = block_iterator_first ((block), &(iter), &(name)); \ - (sym) != NULL; \ - (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/cp-support.c b/gdb/cp-support.c index c434d5a..78eacd0 100644 --- a/gdb/cp-support.c +++ b/gdb/cp-support.c @@ -1274,12 +1274,9 @@ add_symbol_overload_list_block (const char *name, const struct block *block, std::vector<symbol *> *overload_list) { - struct block_iterator iter; - struct symbol *sym; - lookup_name_info lookup_name (name, symbol_name_match_type::FULL); - ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym) + for (struct symbol *sym : block_iterator_range (block, &lookup_name)) overload_list_add_symbol (sym, name, overload_list); } diff --git a/gdb/python/py-block.c b/gdb/python/py-block.c index bd2ce7f..da33d4c 100644 --- a/gdb/python/py-block.c +++ b/gdb/python/py-block.c @@ -265,24 +265,18 @@ blpy_getitem (PyObject *self, PyObject *key) lookup_name_info lookup_name (name.get(), symbol_name_match_type::FULL); - /* We use ALL_BLOCK_SYMBOLS_WITH_NAME instead of block_lookup_symbol so - that we can look up symbols irrespective of the domain, matching the - iterator. It would be confusing if the iterator returns symbols you - can't find via getitem. */ - struct block_iterator iter; - struct symbol *sym = nullptr; - ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym) + /* We use an iterator instead of block_lookup_symbol so that we can + look up symbols irrespective of the domain, matching the + iterator. It would be confusing if the iterator returns symbols + you can't find via getitem. */ + for (struct symbol *sym : block_iterator_range (block, &lookup_name)) { /* Just stop at the first match */ - break; + return symbol_to_symbol_object (sym); } - if (sym == nullptr) - { - PyErr_SetObject (PyExc_KeyError, key); - return nullptr; - } - return symbol_to_symbol_object (sym); + PyErr_SetObject (PyExc_KeyError, key); + return nullptr; } static void diff --git a/gdb/symtab.c b/gdb/symtab.c index d6dc323..9508dcf 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -2771,10 +2771,7 @@ iterate_over_symbols (const struct block *block, const domain_enum domain, gdb::function_view<symbol_found_callback_ftype> callback) { - struct block_iterator iter; - struct symbol *sym; - - ALL_BLOCK_SYMBOLS_WITH_NAME (block, name, iter, sym) + for (struct symbol *sym : block_iterator_range (block, &name)) { if (symbol_matches_domain (sym->language (), sym->domain (), domain)) { |