summaryrefslogtreecommitdiff
path: root/gdb/symtab.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-12-14 17:47:38 +0000
committerTom Tromey <tromey@redhat.com>2012-12-14 17:47:38 +0000
commitad8f0b374d3c0fb8c1f754b2eeef0115d09b2fce (patch)
treecb790eb8fc468db7431abfccb72fb2a368288d8f /gdb/symtab.h
parente8d965638a8374af0dff9819622f76f30472bc0b (diff)
downloadgdb-ad8f0b374d3c0fb8c1f754b2eeef0115d09b2fce.tar.gz
* c-exp.y (block, variable, name_not_typename, lex_one_token,
classify_name): Update. * c-valprint.c (c_val_print): Update. * f-exp.y (yylex): Update. * go-exp.y (package_name_p, classify_packaged_name) (classify_name): Update. * jv-exp.y (push_variable): Update. * m2-exp.y (variable): Update. * mi/mi-cmd-stack.c (list_args_or_locals): Update. * p-exp.y (block, variable, yylex): Update. * p-valprint.c (pascal_val_print): Update. * parse.c (write_dollar_variable): Update. * printcmd.c (address_info): Update. * python/py-symbol.c (gdbpy_lookup_symbol): Update. * symtab.c (lookup_symbol_aux, lookup_symbol_in_language) (lookup_symbol): Change type of 'is_a_field_of_this'. (check_field): Add 'is_a_field_of_this' argument. * symtab.h (struct field_of_this_result): New. (lookup_symbol, lookup_symbol_in_language): Update.
Diffstat (limited to 'gdb/symtab.h')
-rw-r--r--gdb/symtab.h27
1 files changed, 25 insertions, 2 deletions
diff --git a/gdb/symtab.h b/gdb/symtab.h
index a933132c0d1..6683cf5886d 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -919,19 +919,42 @@ int symbol_matches_domain (enum language symbol_language,
extern struct symtab *lookup_symtab (const char *);
+/* An object of this type is passed as the 'is_a_field_of_this'
+ argument to lookup_symbol and lookup_symbol_in_language. */
+
+struct field_of_this_result
+{
+ /* The type in which the field was found. If this is NULL then the
+ symbol was not found in 'this'. If non-NULL, then one of the
+ other fields will be non-NULL as well. */
+
+ struct type *type;
+
+ /* If the symbol was found as an ordinary field of 'this', then this
+ is non-NULL and points to the particular field. */
+
+ struct field *field;
+
+ /* If the symbol was found as an function field of 'this', then this
+ is non-NULL and points to the particular field. */
+
+ struct fn_fieldlist *fn_field;
+};
+
/* lookup a symbol by name (optional block) in language. */
extern struct symbol *lookup_symbol_in_language (const char *,
const struct block *,
const domain_enum,
enum language,
- int *);
+ struct field_of_this_result *);
/* lookup a symbol by name (optional block, optional symtab)
in the current language. */
extern struct symbol *lookup_symbol (const char *, const struct block *,
- const domain_enum, int *);
+ const domain_enum,
+ struct field_of_this_result *);
/* A default version of lookup_symbol_nonlocal for use by languages
that can't think of anything better to do. */