+2019-01-09 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.
+
2019-01-09 Tom Tromey <tom@tromey.com>
* symtab.h (ALL_COMPUNIT_FILETABS): Remove.
/* 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 (compunit_symtab *cu : objfile_compunits (objfile))
+ {
+ for (symtab *s : compunit_filetabs (cu))
+ patch_opaque_types (s);
+ }
}
coffread_objfile = NULL;
/* OK, get all the symtabs. */
{
- ALL_OBJFILE_FILETABS (objfile, cust, s)
- {
- struct linetable *l;
+ for (compunit_symtab *cust : objfile_compunits (objfile))
+ {
+ for (symtab *s : compunit_filetabs (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));
- }
- }
+ /* 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 (compunit_symtab *cust : objfile_compunits (objfile))
{
(obj) != NULL; \
(obj) = (obj)->next)
-/* Traverse all symtabs in one objfile. */
-
-#define ALL_OBJFILE_FILETABS(objfile, cu, s) \
- for (compunit_symtab *cu : objfile_compunits (objfile)) \
- for (symtab *s : compunit_filetabs (cu))
-
/* A range adapter that makes it possible to iterate over all
compunits in one objfile. */
/* 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 (compunit_symtab *ps : objfile_compunits (objfile)) \
+ for (symtab *s : compunit_filetabs (cu))
#define ALL_OBJFILE_OSECTIONS(objfile, osect) \
for (osect = objfile->sections; osect < objfile->sections_end; osect++) \
void
forget_cached_source_info_for_objfile (struct objfile *objfile)
{
- ALL_OBJFILE_FILETABS (objfile, cu, s)
+ for (compunit_symtab *cu : objfile_compunits (objfile))
{
- if (s->line_charpos != NULL)
+ for (symtab *s : compunit_filetabs (cu))
{
- xfree (s->line_charpos);
- s->line_charpos = NULL;
- }
- if (s->fullname != NULL)
- {
- xfree (s->fullname);
- s->fullname = NULL;
+ 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->print_stats (objfile);
i = linetables = 0;
- ALL_OBJFILE_FILETABS (objfile, cu, s)
+ for (compunit_symtab *cu : objfile_compunits (objfile))
{
- i++;
- if (SYMTAB_LINETABLE (s) != NULL)
- linetables++;
+ for (symtab *s : compunit_filetabs (cu))
+ {
+ i++;
+ if (SYMTAB_LINETABLE (s) != NULL)
+ linetables++;
+ }
}
blockvectors = std::distance (objfile_compunits (objfile).begin (),
objfile_compunits (objfile).end ());
if (objfile->compunit_symtabs != NULL)
{
printf_filtered ("Symtabs:\n");
- ALL_OBJFILE_FILETABS (objfile, cust, symtab)
+ for (compunit_symtab *cu : objfile_compunits (objfile))
{
- printf_filtered ("%s at ", symtab_to_filename_for_display (symtab));
- gdb_print_host_address (symtab, gdb_stdout);
- printf_filtered (", ");
- if (SYMTAB_OBJFILE (symtab) != objfile)
+ for (symtab *symtab : compunit_filetabs (cu))
{
- printf_filtered ("NOT ON CHAIN! ");
+ 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 (" ");
}
- wrap_here (" ");
}
printf_filtered ("\n\n");
}
if (!print_for_objfile)
continue;
- ALL_OBJFILE_FILETABS (objfile, cu, s)
+ for (compunit_symtab *cu : objfile_compunits (objfile))
{
- int print_for_source = 0;
-
- QUIT;
- if (source_arg != NULL)
+ for (symtab *s : compunit_filetabs (cu))
{
- print_for_source
- = compare_filenames_for_search
- (symtab_to_filename_for_display (s), source_arg);
- found = 1;
+ 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);
}
- if (source_arg == NULL
- || print_for_source)
- dump_symtab (s, outfile);
}
}