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

@ -1,3 +1,15 @@
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).
2004-06-08 Alexandre Oliva <aoliva@redhat.com>
* Makefile.in (check//%): New.

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. */

View File

@ -393,4 +393,15 @@ extern void ada_find_printable_frame (struct frame_info *fi);
extern void ada_reset_thread_registers (void);
/* Look up a symbol by name using the search conventions of
a specific language (optional block, optional symtab).
FIXME: Should be symtab.h. */
extern struct symbol *lookup_symbol_in_language (const char *,
const struct block *,
domain_enum,
enum language,
int *,
struct symtab **);
#endif