gdb: add new function quick_symbol_functions::has_unexpanded_symbols

Adds a new function to the quick_symbol_functions API to let us know
if there are any unexpanded symbols.  This functionality is required
by a later commit.  After this commit the functionality is unused, and
untested.

The new function objfile::has_unexpanded_symtabs is added to the
symfile-debug.c file which is a little strange, but this
is (currently) where many of the other objfile::* functions (that call
onto the quick_symbol_functions) are defined, so I'm reluctant to
break this pattern.

There should be no user visible changes after this commit.

gdb/ChangeLog:

	* dwarf2/read.c (struct dwarf2_base_index_functions)
	<has_unexpanded_symtabs>: Declare.
	(dwarf2_base_index_functions::has_unexpanded_symtabs): Define new
	function.
	* objfiles.h (struct objfile) <has_unexpanded_symtabs>: Declare.
	* psympriv.h (struct psymbol_functions) <has_unexpanded_symtabs>:
	Declare.
	* psymtab.c (psymbol_functions::has_unexpanded_symtabs): Define
	new function.
	* quick-symbol.h (struct quick_symbol_functions)
	<has_unexpanded_symtabs>: Declare.
	* symfile-debug.c (objfile::has_unexpanded_symtabs): Define new
	function.
This commit is contained in:
Andrew Burgess 2021-04-15 11:29:55 +01:00
parent d038ce48f1
commit fc4d5ebf8f
7 changed files with 95 additions and 0 deletions

View file

@ -100,6 +100,31 @@ objfile::has_partial_symbols ()
return retval;
}
/* See objfiles.h. */
bool
objfile::has_unexpanded_symtabs ()
{
if (debug_symfile)
fprintf_filtered (gdb_stdlog, "qf->has_unexpanded_symtabs (%s)\n",
objfile_debug_name (this));
bool result = false;
for (const auto &iter : qf)
{
if (iter->has_unexpanded_symtabs (this))
{
result = true;
break;
}
}
if (debug_symfile)
fprintf_filtered (gdb_stdlog, "qf->has_unexpanded_symtabs (%s) = %d\n",
objfile_debug_name (this), (result ? 1 : 0));
return result;
}
struct symtab *
objfile::find_last_source_symtab ()
{