aboutsummaryrefslogtreecommitdiff
path: root/gdb/symtab.h
diff options
context:
space:
mode:
authorDoug Evans <xdje42@gmail.com>2014-12-23 07:21:10 -0800
committerDoug Evans <xdje42@gmail.com>2014-12-23 07:21:10 -0800
commit08be3fe322244a3684d007d9282e225fc215f5d8 (patch)
tree083e30284643e51dbc49b6b3ab9a3e3a5a0e6e35 /gdb/symtab.h
parent4347085ad3e84bdc1f91e7121cedf3e79a9467fb (diff)
downloadgdb-08be3fe322244a3684d007d9282e225fc215f5d8.zip
gdb-08be3fe322244a3684d007d9282e225fc215f5d8.tar.gz
gdb-08be3fe322244a3684d007d9282e225fc215f5d8.tar.bz2
Replace some symbol accessor macros with functions.
gdb/ChangeLog: * symtab.h (SYMBOL_SYMTAB): Delete (SYMBOL_OBJFILE): Delete. (symbol_symtab, symbol_set_symtab): Declare. (symbol_objfile, symbol_arch): Declare. * symtab.c (symbol_symtab): Replaces SYMBOL_SYMTAB. All uses updated. All references to symbol->symtab redirected through here. (symbol_set_symtab): New function. All assignments to SYMBOL_SYMTAB redirected through here. (symbol_arch): New function. (symbol_objfile): New function. Replaces SYMBOL_OBJFILE. All uses updated. * cp-namespace.c (cp_lookup_symbol_imports_or_template): Call symbol_arch. * findvar.c (default_read_var_value): Call symbol_arch. * guile/scm-frame.c (gdbscm_frame_block): Call symbol_objfile. * jv-lang.c (add_class_symtab_symbol): Call symbol_arch. * printcmd.c (address_info): Call symbol_arch. * tracepoint.c (scope_info): Call symbol_arch.
Diffstat (limited to 'gdb/symtab.h')
-rw-r--r--gdb/symtab.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 1446201..d195222 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -775,12 +775,10 @@ extern const struct symbol_impl *symbol_impls;
(symbol)->is_cplus_template_function
#define SYMBOL_TYPE(symbol) (symbol)->type
#define SYMBOL_LINE(symbol) (symbol)->line
-#define SYMBOL_SYMTAB(symbol) (symbol)->symtab
#define SYMBOL_COMPUTED_OPS(symbol) (SYMBOL_IMPL (symbol).ops_computed)
#define SYMBOL_BLOCK_OPS(symbol) (SYMBOL_IMPL (symbol).ops_block)
#define SYMBOL_REGISTER_OPS(symbol) (SYMBOL_IMPL (symbol).ops_register)
#define SYMBOL_LOCATION_BATON(symbol) (symbol)->aux_value
-#define SYMBOL_OBJFILE(symbol) SYMTAB_OBJFILE (SYMBOL_SYMTAB (symbol))
extern int register_symbol_computed_impl (enum address_class,
const struct symbol_computed_ops *);
@@ -791,6 +789,28 @@ extern int register_symbol_block_impl (enum address_class aclass,
extern int register_symbol_register_impl (enum address_class,
const struct symbol_register_ops *);
+/* Return the OBJFILE of SYMBOL.
+ It is an error to call this if symbol.is_objfile_owned is false, which
+ only happens for architecture-provided types. */
+
+extern struct objfile *symbol_objfile (const struct symbol *symbol);
+
+/* Return the ARCH of SYMBOL. */
+
+extern struct gdbarch *symbol_arch (const struct symbol *symbol);
+
+/* Return the SYMTAB of SYMBOL.
+ It is an error to call this if symbol.is_objfile_owned is false, which
+ only happens for architecture-provided types. */
+
+extern struct symtab *symbol_symtab (const struct symbol *symbol);
+
+/* Set the symtab of SYMBOL to SYMTAB.
+ It is an error to call this if symbol.is_objfile_owned is false, which
+ only happens for architecture-provided types. */
+
+extern void symbol_set_symtab (struct symbol *symbol, struct symtab *symtab);
+
/* An instance of this type is used to represent a C++ template
function. It includes a "struct symbol" as a kind of base class;
users downcast to "struct template_symbol *" when needed. A symbol