diff options
author | Paul N. Hilfinger <hilfinger@adacore.com> | 2004-06-08 08:42:04 +0000 |
---|---|---|
committer | Paul N. Hilfinger <hilfinger@adacore.com> | 2004-06-08 08:42:04 +0000 |
commit | f26caa111510d587da5a777082803dedef2f42eb (patch) | |
tree | 0aecbf277e1840f4fc11fc5eaa7e1264627da76c /gdb/ada-lang.c | |
parent | eef0f186e0e66caa02fbaa192a4074e00b960d91 (diff) | |
download | gdb-f26caa111510d587da5a777082803dedef2f42eb.zip gdb-f26caa111510d587da5a777082803dedef2f42eb.tar.gz gdb-f26caa111510d587da5a777082803dedef2f42eb.tar.bz2 |
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).
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r-- | gdb/ada-lang.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index e9daf1a..f084f4f 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -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. */ |