diff options
Diffstat (limited to 'gdb/buildsym.c')
-rw-r--r-- | gdb/buildsym.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 71980ab5d09..63f60546056 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -309,12 +309,12 @@ finish_block (struct symbol *symbol, struct pending **listhead, TYPE_FIELDS (ftype) = (struct field *) TYPE_ALLOC (ftype, nparams * sizeof (struct field)); - for (sym = dict_iterator_first (BLOCK_DICT (block), &iter), - iparams = 0; - iparams < nparams; - sym = dict_iterator_next (&iter)) + iparams = 0; + ALL_BLOCK_SYMBOLS (block, iter, sym) { - gdb_assert (sym != NULL); + if (iparams == nparams) + break; + switch (SYMBOL_CLASS (sym)) { case LOC_ARG: @@ -439,6 +439,7 @@ finish_block (struct symbol *symbol, struct pending **listhead, record_pending_block (objfile, block, opblock); } + /* Record BLOCK on the list of all blocks in the file. Put it after OPBLOCK, or at the beginning if opblock is NULL. This puts the block in the list after all its subblocks. |