2004-06-08 Paul N. Hilfinger <Hilfinger@gnat.com>

* ada-lang.c (lookup_symbol_in_language): New function to allow
	re-use of another language's symbol lookup code.  (Placed here
	temporarily while Ada support is being integrated into the public
	tree).
	(restore_language): New auxiliary function for
	lookup_symbol_in_language.
	* ada-lang.h (lookup_symbol_in_language): Declare (Placed here
	temporarily while Ada support is being integrated into the public
	tree).
This commit is contained in:
Paul N. Hilfinger
2004-06-08 08:42:04 +00:00
parent eef0f186e0
commit f26caa1115
3 changed files with 47 additions and 0 deletions

View File

@@ -4444,6 +4444,30 @@ add_symbols_from_enclosing_procs (struct obstack *obstackp,
#endif
}
/* FIXME: The next two routines belong in symtab.c */
static void restore_language (void* lang)
{
set_language ((enum language) lang);
}
/* As for lookup_symbol, but performed as if the current language
were LANG. */
struct symbol *
lookup_symbol_in_language (const char *name, const struct block *block,
domain_enum domain, enum language lang,
int *is_a_field_of_this, struct symtab **symtab)
{
struct cleanup *old_chain
= make_cleanup (restore_language, (void*) current_language->la_language);
struct symbol *result;
set_language (lang);
result = lookup_symbol (name, block, domain, is_a_field_of_this, symtab);
do_cleanups (old_chain);
return result;
}
/* True if TYPE is definitely an artificial type supplied to a symbol
for which no debugging information was given in the symbol file. */