Remove ALL_OBJFILE_FILETABS
This removes ALL_OBJFILE_FILETABS, replacing its uses with ranged for loops. gdb/ChangeLog 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.
This commit is contained in:
parent
5accd1a07e
commit
d5da8b3c0d
6 changed files with 81 additions and 56 deletions
|
@ -1,3 +1,14 @@
|
|||
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.
|
||||
|
|
|
@ -1203,8 +1203,11 @@ 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 (compunit_symtab *cu : objfile_compunits (objfile))
|
||||
{
|
||||
for (symtab *s : compunit_filetabs (cu))
|
||||
patch_opaque_types (s);
|
||||
}
|
||||
}
|
||||
|
||||
coffread_objfile = NULL;
|
||||
|
|
|
@ -788,20 +788,23 @@ objfile_relocate1 (struct objfile *objfile,
|
|||
|
||||
/* 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))
|
||||
{
|
||||
|
|
|
@ -612,12 +612,6 @@ public:
|
|||
(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. */
|
||||
|
||||
|
@ -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 (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++) \
|
||||
|
|
21
gdb/source.c
21
gdb/source.c
|
@ -349,17 +349,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)
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -107,11 +107,14 @@ print_objfile_statistics (void)
|
|||
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 ());
|
||||
|
@ -157,16 +160,20 @@ dump_objfile (struct objfile *objfile)
|
|||
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");
|
||||
}
|
||||
|
@ -477,21 +484,24 @@ maintenance_print_symbols (const char *args, int from_tty)
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue