diff options
author | David Carlton <carlton@bactrian.org> | 2003-05-20 01:55:18 +0000 |
---|---|---|
committer | David Carlton <carlton@bactrian.org> | 2003-05-20 01:55:18 +0000 |
commit | 5f9a71c3d74f62fb4e6a3fe0007044f429638a60 (patch) | |
tree | 6dadfb5ba27f4d6fe845ac3c96cd5016f3fedd05 /gdb/symtab.h | |
parent | 89a9d1b1639d01840668fbc6937f79c433fad24b (diff) | |
download | gdb-5f9a71c3d74f62fb4e6a3fe0007044f429638a60.zip gdb-5f9a71c3d74f62fb4e6a3fe0007044f429638a60.tar.gz gdb-5f9a71c3d74f62fb4e6a3fe0007044f429638a60.tar.bz2 |
2003-05-19 David Carlton <carlton@bactrian.org>
* language.h (struct language_defn): Add 'la_value_of_this'
and 'la_lookup_symbol_nonlocal' members.
* symtab.h: Declare basic_lookup_symbol_nonlocal,
lookup_symbol_static, lookup_symbol_global,
lookup_symbol_aux_block.
* symtab.c (lookup_symbol_aux): Call language hooks to determine
if we should search fields of this and how to do static/global
lookup.
(lookup_symbol_aux_block): Make extern.
(basic_lookup_symbol_nonlocal): New.
(lookup_symbol_static, lookup_symbol_global): Ditto.
* ada-lang.c (ada_language_defn): Set 'la_value_of_this' and
'la_lookup_symbol_nonlocal' members.
* c-lang.c (c_language_defn, cplus_language_defn)
(asm_language_defn, minimal_language_defn): Ditto.
* jv-lang.c (java_language_defn): Ditto.
* language.c (unknown_language_defn, auto_language_defn)
(local_language_defn): Ditto.
* m2-lang.c (m2_language_defn): Ditto.
* objc-lang.c (objc_language_defn): Ditto.
* scm-lang.c (scm_language_defn): Ditto.
* f-lang.c (f_language_defn): Ditto, and include value.h as well.
* p-lang.c (pascal_language_defn): Ditto for both.
* Makefile.in (f-lang.o): Depend on value_h.
(p-lang.o): Ditto.
Diffstat (limited to 'gdb/symtab.h')
-rw-r--r-- | gdb/symtab.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gdb/symtab.h b/gdb/symtab.h index f8be03b..26ea51e 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -988,6 +988,45 @@ extern struct symbol *lookup_symbol (const char *, const struct block *, const domain_enum, int *, struct symtab **); +/* A default version of lookup_symbol_nonlocal for use by languages + that can't think of anything better to do. */ + +extern struct symbol *basic_lookup_symbol_nonlocal (const char *, + const char *, + const struct block *, + const domain_enum, + struct symtab **); + +/* Some helper functions for languages that need to write their own + lookup_symbol_nonlocal functions. */ + +/* Lookup a symbol in the static block associated to BLOCK, if there + is one; do nothing if BLOCK is NULL or a global block. */ + +extern struct symbol *lookup_symbol_static (const char *name, + const char *linkage_name, + const struct block *block, + const domain_enum domain, + struct symtab **symtab); + +/* Lookup a symbol in all files' global blocks (searching psymtabs if + necessary). */ + +extern struct symbol *lookup_symbol_global (const char *name, + const char *linkage_name, + const domain_enum domain, + struct symtab **symtab); + +/* Lookup a symbol within the block BLOCK. This, unlike + lookup_symbol_block, will set SYMTAB and BLOCK_FOUND correctly, and + will fix up the symbol if necessary. */ + +extern struct symbol *lookup_symbol_aux_block (const char *name, + const char *linkage_name, + const struct block *block, + const domain_enum domain, + struct symtab **symtab); + /* lookup a symbol by name, within a specified block */ extern struct symbol *lookup_block_symbol (const struct block *, const char *, |