aboutsummaryrefslogtreecommitdiff
path: root/gdb/ia64-libunwind-tdep.c
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2020-06-08 14:06:08 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2020-07-06 15:06:04 +0100
commit3bc98c0c832f5bdca364e083f92be687dbf494cc (patch)
tree1d49e95a06e01e11c336f57c28b0d925a6bdd89b /gdb/ia64-libunwind-tdep.c
parentd8cc8af6a1787f9c2eafc62a36ac86cf4d08c89c (diff)
downloadgdb-3bc98c0c832f5bdca364e083f92be687dbf494cc.zip
gdb-3bc98c0c832f5bdca364e083f92be687dbf494cc.tar.gz
gdb-3bc98c0c832f5bdca364e083f92be687dbf494cc.tar.bz2
gdb: Remove deprecated_set_gdbarch_data
There are currently two remaining uses of deprecated_set_gdbarch_data, both of which are needed because during gdbarch initialisation we call gdbarch_data for a data field that is registered using: gdbarch_data_register_post_init (....) However, in both of these cases, the only thing that the call back needs from the gdbarch struct is its obstack. Given this there is nothing stopping us changing the post-init hooks into pre-init hooks. The pre-init hooks don't get passed the full gdbarch, they only get passed its obstack. The IA64 change is completely untested. The user-regs change has been tested a little by locally adding some user-regs to the x86-64 target, and also by running the RISC-V tests, which do use user-regs. gdb/ChangeLog: * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * gdbarch.sh (deprecated_set_gdbarch_data): Delete. (gdbarch_data): Use internal_error for the case where deprecated_set_gdbarch_data was originally needed. * ia64-libunwind-tdep.c (libunwind_descr_init): Update parameters, and use passed in obstack. (libunwind_frame_set_descr): Should no longer get back NULL from gdbarch_data. (_initialize_libunwind_frame): Register as a pre-init gdbarch data type. * user-regs.c (user_regs_init): Update parameters, and use passed in obstack. (user_reg_add): Should no longer get back NULL from gdbarch_data. (_initialize_user_regs): Register as a pre-init gdbarch data type.
Diffstat (limited to 'gdb/ia64-libunwind-tdep.c')
-rw-r--r--gdb/ia64-libunwind-tdep.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/gdb/ia64-libunwind-tdep.c b/gdb/ia64-libunwind-tdep.c
index 59b7df1..94881bb 100644
--- a/gdb/ia64-libunwind-tdep.c
+++ b/gdb/ia64-libunwind-tdep.c
@@ -133,10 +133,10 @@ libunwind_descr (struct gdbarch *gdbarch)
}
static void *
-libunwind_descr_init (struct gdbarch *gdbarch)
+libunwind_descr_init (struct obstack *obstack)
{
struct libunwind_descr *descr
- = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct libunwind_descr);
+ = OBSTACK_ZALLOC (obstack, struct libunwind_descr);
return descr;
}
@@ -151,14 +151,7 @@ libunwind_frame_set_descr (struct gdbarch *gdbarch,
arch_descr = ((struct libunwind_descr *)
gdbarch_data (gdbarch, libunwind_descr_handle));
-
- if (arch_descr == NULL)
- {
- /* First time here. Must initialize data area. */
- arch_descr = (struct libunwind_descr *) libunwind_descr_init (gdbarch);
- deprecated_set_gdbarch_data (gdbarch,
- libunwind_descr_handle, arch_descr);
- }
+ gdb_assert (arch_descr != NULL);
/* Copy new descriptor info into arch descriptor. */
arch_descr->gdb2uw = descr->gdb2uw;
@@ -596,7 +589,7 @@ void
_initialize_libunwind_frame ()
{
libunwind_descr_handle
- = gdbarch_data_register_post_init (libunwind_descr_init);
+ = gdbarch_data_register_pre_init (libunwind_descr_init);
libunwind_initialized = libunwind_load ();
}