From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [PATCH 09/12] Remove ALL_OBJFILE_FILETABS
Date: Sun, 25 Nov 2018 16:54:00 -0000 [thread overview]
Message-ID: <20181125165439.13773-10-tom@tromey.com> (raw)
In-Reply-To: <20181125165439.13773-1-tom@tromey.com>
This removes ALL_OBJFILE_FILETABS, replacing its uses with ranged for
loops.
gdb/ChangeLog
2018-11-25 Tom Tromey <tom@tromey.com>
* symmisc.c (print_objfile_statistics, dump_objfile)
(maintenance_print_symbols): Use compunit_filetabs.
* source.c (forget_cached_source_info_for_objfile): Use
compunit_filetabs.
* objfiles.h (ALL_OBJFILE_FILETABS): Remove.
(ALL_FILETABS): Use compunit_filetabs.
* objfiles.c (objfile_relocate1): Use compunit_filetabs.
* coffread.c (coff_symtab_read): Use compunit_filetabs.
---
gdb/ChangeLog | 11 +++++++++
gdb/coffread.c | 5 ++--
gdb/objfiles.c | 25 ++++++++++---------
gdb/objfiles.h | 13 +++-------
gdb/source.c | 27 ++++++++++----------
gdb/symmisc.c | 67 ++++++++++++++++++++++++++------------------------
6 files changed, 80 insertions(+), 68 deletions(-)
diff --git a/gdb/coffread.c b/gdb/coffread.c
index 82e6767ae1..741fad69fa 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -1201,8 +1201,9 @@ coff_symtab_read (minimal_symbol_reader &reader,
/* Patch up any opaque types (references to types that are not defined
in the file where they are referenced, e.g. "struct foo *bar"). */
{
- ALL_OBJFILE_FILETABS (objfile, cu, s)
- patch_opaque_types (s);
+ for (struct compunit_symtab *cu : objfile_compunits (objfile))
+ for (struct symtab *s : compunit_filetabs (cu))
+ patch_opaque_types (s);
}
coffread_objfile = NULL;
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 3429fdc9d8..9f54b8edf5 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -788,20 +788,21 @@ objfile_relocate1 (struct objfile *objfile,
/* OK, get all the symtabs. */
{
- ALL_OBJFILE_FILETABS (objfile, cust, s)
- {
- struct linetable *l;
-
- /* First the line table. */
- l = SYMTAB_LINETABLE (s);
- if (l)
+ for (struct compunit_symtab *cust : objfile_compunits (objfile))
+ for (struct symtab *s : compunit_filetabs (cust))
{
- for (int i = 0; i < l->nitems; ++i)
- l->item[i].pc += ANOFFSET (delta,
- COMPUNIT_BLOCK_LINE_SECTION
- (cust));
+ struct linetable *l;
+
+ /* First the line table. */
+ l = SYMTAB_LINETABLE (s);
+ if (l)
+ {
+ for (int i = 0; i < l->nitems; ++i)
+ l->item[i].pc += ANOFFSET (delta,
+ COMPUNIT_BLOCK_LINE_SECTION
+ (cust));
+ }
}
- }
for (struct compunit_symtab *cust : objfile_compunits (objfile))
{
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 4bbe7ea613..94394e79ae 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -612,12 +612,6 @@ public:
(obj) != NULL; \
(obj) = (obj)->next)
-/* Traverse all symtabs in one objfile. */
-
-#define ALL_OBJFILE_FILETABS(objfile, cu, s) \
- for (struct compunit_symtab *cu : objfile_compunits (objfile)) \
- for (struct symtab *s : compunit_filetabs (cu))
-
/* A range adapter that makes it possible to iterate over all
compunits in one objfile. */
@@ -714,9 +708,10 @@ private:
/* Traverse all symtabs in all objfiles in the current symbol
space. */
-#define ALL_FILETABS(objfile, ps, s) \
- ALL_OBJFILES (objfile) \
- ALL_OBJFILE_FILETABS (objfile, ps, s)
+#define ALL_FILETABS(objfile, ps, s) \
+ ALL_OBJFILES (objfile) \
+ for (struct compunit_symtab *ps : objfile_compunits (objfile)) \
+ for (struct symtab *s : compunit_filetabs (cu))
#define ALL_OBJFILE_OSECTIONS(objfile, osect) \
for (osect = objfile->sections; osect < objfile->sections_end; osect++) \
diff --git a/gdb/source.c b/gdb/source.c
index 65b9bf554d..6111453eb0 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -355,19 +355,20 @@ show_directories_command (struct ui_file *file, int from_tty,
void
forget_cached_source_info_for_objfile (struct objfile *objfile)
{
- ALL_OBJFILE_FILETABS (objfile, cu, s)
- {
- if (s->line_charpos != NULL)
- {
- xfree (s->line_charpos);
- s->line_charpos = NULL;
- }
- if (s->fullname != NULL)
- {
- xfree (s->fullname);
- s->fullname = NULL;
- }
- }
+ for (struct compunit_symtab *cu : objfile_compunits (objfile))
+ for (struct symtab *s : compunit_filetabs (cu))
+ {
+ if (s->line_charpos != NULL)
+ {
+ xfree (s->line_charpos);
+ s->line_charpos = NULL;
+ }
+ if (s->fullname != NULL)
+ {
+ xfree (s->fullname);
+ s->fullname = NULL;
+ }
+ }
if (objfile->sf)
objfile->sf->qf->forget_cached_source_info (objfile);
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index e9ab1c95b8..148e839599 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -107,12 +107,13 @@ print_objfile_statistics (void)
if (objfile->sf)
objfile->sf->qf->print_stats (objfile);
i = linetables = 0;
- ALL_OBJFILE_FILETABS (objfile, cu, s)
- {
- i++;
- if (SYMTAB_LINETABLE (s) != NULL)
- linetables++;
- }
+ for (struct compunit_symtab *cu : objfile_compunits (objfile))
+ for (struct symtab *s : compunit_filetabs (cu))
+ {
+ i++;
+ if (SYMTAB_LINETABLE (s) != NULL)
+ linetables++;
+ }
blockvectors = std::distance (objfile_compunits (objfile).begin (),
objfile_compunits (objfile).end ());
printf_filtered (_(" Number of symbol tables: %d\n"), i);
@@ -157,17 +158,18 @@ dump_objfile (struct objfile *objfile)
if (objfile->compunit_symtabs != NULL)
{
printf_filtered ("Symtabs:\n");
- ALL_OBJFILE_FILETABS (objfile, cust, symtab)
- {
- printf_filtered ("%s at ", symtab_to_filename_for_display (symtab));
- gdb_print_host_address (symtab, gdb_stdout);
- printf_filtered (", ");
- if (SYMTAB_OBJFILE (symtab) != objfile)
- {
- printf_filtered ("NOT ON CHAIN! ");
- }
- wrap_here (" ");
- }
+ for (struct compunit_symtab *cu : objfile_compunits (objfile))
+ for (struct symtab *symtab : compunit_filetabs (cu))
+ {
+ printf_filtered ("%s at ", symtab_to_filename_for_display (symtab));
+ gdb_print_host_address (symtab, gdb_stdout);
+ printf_filtered (", ");
+ if (SYMTAB_OBJFILE (symtab) != objfile)
+ {
+ printf_filtered ("NOT ON CHAIN! ");
+ }
+ wrap_here (" ");
+ }
printf_filtered ("\n\n");
}
}
@@ -477,22 +479,23 @@ maintenance_print_symbols (const char *args, int from_tty)
if (!print_for_objfile)
continue;
- ALL_OBJFILE_FILETABS (objfile, cu, s)
- {
- int print_for_source = 0;
+ for (struct compunit_symtab *cu : objfile_compunits (objfile))
+ for (struct symtab *s : compunit_filetabs (cu))
+ {
+ int print_for_source = 0;
- QUIT;
- if (source_arg != NULL)
- {
- print_for_source
- = compare_filenames_for_search
- (symtab_to_filename_for_display (s), source_arg);
- found = 1;
- }
- if (source_arg == NULL
- || print_for_source)
- dump_symtab (s, outfile);
- }
+ QUIT;
+ if (source_arg != NULL)
+ {
+ print_for_source
+ = compare_filenames_for_search
+ (symtab_to_filename_for_display (s), source_arg);
+ found = 1;
+ }
+ if (source_arg == NULL
+ || print_for_source)
+ dump_symtab (s, outfile);
+ }
}
if (source_arg != NULL && !found)
--
2.17.2
next prev parent reply other threads:[~2018-11-25 16:54 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-25 16:54 [PATCH 00/12] Remove some ALL_* iteration macros Tom Tromey
2018-11-25 16:54 ` [PATCH 03/12] Remove most uses of ALL_OBJFILES Tom Tromey
2018-11-25 16:54 ` [PATCH 01/12] Introduce all_objfiles and next_iterator Tom Tromey
2018-11-25 16:54 ` [PATCH 12/12] Remove ALL_OBJFILE_PSYMTABS Tom Tromey
2018-11-25 16:54 ` Tom Tromey [this message]
2018-11-25 16:54 ` [PATCH 10/12] Remove ALL_OBJFILES and ALL_FILETABS Tom Tromey
2018-11-25 16:54 ` [PATCH 07/12] Remove ALL_COMPUNITS Tom Tromey
2018-11-25 16:54 ` [PATCH 11/12] Remove ALL_OBJSECTIONS Tom Tromey
2018-11-25 16:54 ` [PATCH 04/12] Remove ALL_OBJFILES_SAFE Tom Tromey
2018-11-25 16:54 ` [PATCH 08/12] Remove ALL_COMPUNIT_FILETABS Tom Tromey
2018-11-25 16:54 ` [PATCH 05/12] Remove ALL_MSYMBOLS and ALL_OBJFILE_MSYMBOLS Tom Tromey
2018-11-25 16:55 ` [PATCH 02/12] Remove ALL_PSPACE_OBJFILES Tom Tromey
2018-11-25 16:55 ` [PATCH 06/12] Remove ALL_OBJFILE_COMPUNITS Tom Tromey
2018-12-23 7:00 ` [PATCH 00/12] Remove some ALL_* iteration macros Joel Brobecker
2018-12-24 20:54 ` Tom Tromey
2018-12-26 17:30 ` Simon Marchi
2018-12-26 22:28 ` Tom Tromey
2018-12-26 22:32 ` Tom Tromey
2018-12-26 22:35 ` Simon Marchi
2018-12-26 22:52 ` Tom Tromey
2018-12-26 23:45 ` Tom Tromey
2018-12-27 0:46 ` Simon Marchi
2018-12-27 6:22 ` Tom Tromey
2018-12-27 1:52 ` Simon Marchi
2019-01-03 21:46 ` Tom Tromey
2019-01-03 22:45 ` Simon Marchi
2019-01-06 20:10 ` Tom Tromey
2019-01-09 19:49 ` Simon Marchi
2019-01-10 1:29 ` Tom Tromey
2019-01-10 16:45 ` Pedro Alves
2019-01-10 18:10 ` Tom Tromey
2019-01-10 19:58 ` Pedro Alves
2019-01-10 16:44 ` Pedro Alves
2019-01-10 18:06 ` Tom Tromey
2019-01-10 18:09 ` Pedro Alves
2019-01-10 22:53 ` Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181125165439.13773-10-tom@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox