This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 09/12] Remove ALL_OBJFILE_FILETABS
- From: Tom Tromey <tom at tromey dot com>
- To: gdb-patches at sourceware dot org
- Cc: Tom Tromey <tom at tromey dot com>
- Date: Sun, 25 Nov 2018 09:54:36 -0700
- Subject: [PATCH 09/12] Remove ALL_OBJFILE_FILETABS
- References: <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