diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 18 | ||||
-rw-r--r-- | gdb/gdbarch.c | 22 | ||||
-rw-r--r-- | gdb/gdbarch.h | 3 | ||||
-rwxr-xr-x | gdb/gdbarch.sh | 25 | ||||
-rw-r--r-- | gdb/ia64-libunwind-tdep.c | 15 | ||||
-rw-r--r-- | gdb/user-regs.c | 18 |
6 files changed, 33 insertions, 68 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a07dd38..0b73be8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,21 @@ +2020-07-06 Andrew Burgess <andrew.burgess@embecosm.com> + + * 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. + 2020-07-06 Tom de Vries <tdevries@suse.de> * buildsym.c (buildsym_compunit::end_symtab_with_blockvector): Handle diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 6d1bb0d..21ee840 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -5208,20 +5208,6 @@ alloc_gdbarch_data (struct gdbarch *gdbarch) gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *); } -/* Initialize the current value of the specified per-architecture - data-pointer. */ - -void -deprecated_set_gdbarch_data (struct gdbarch *gdbarch, - struct gdbarch_data *data, - void *pointer) -{ - gdb_assert (data->index < gdbarch->nr_data); - gdb_assert (gdbarch->data[data->index] == NULL); - gdb_assert (data->pre_init == NULL); - gdbarch->data[data->index] = pointer; -} - /* Return the current value of the specified per-architecture data-pointer. */ @@ -5251,11 +5237,9 @@ gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data) data->init_p = 1; } else - /* The architecture initialization hasn't completed - punt - - hope that the caller knows what they are doing. Once - deprecated_set_gdbarch_data has been initialized, this can be - changed to an internal error. */ - return NULL; + internal_error (__FILE__, __LINE__, + _("gdbarch post-init data field can only be used " + "after gdbarch is fully initialised")); gdb_assert (gdbarch->data[data->index] != NULL); } return gdbarch->data[data->index]; diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 4e51c29..0940156 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -1839,9 +1839,6 @@ typedef void *(gdbarch_data_pre_init_ftype) (struct obstack *obstack); extern struct gdbarch_data *gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *init); typedef void *(gdbarch_data_post_init_ftype) (struct gdbarch *gdbarch); extern struct gdbarch_data *gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *init); -extern void deprecated_set_gdbarch_data (struct gdbarch *gdbarch, - struct gdbarch_data *data, - void *pointer); extern void *gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *); diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index ad27a4e..41e7b8d 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -1630,9 +1630,6 @@ typedef void *(gdbarch_data_pre_init_ftype) (struct obstack *obstack); extern struct gdbarch_data *gdbarch_data_register_pre_init (gdbarch_data_pre_init_ftype *init); typedef void *(gdbarch_data_post_init_ftype) (struct gdbarch *gdbarch); extern struct gdbarch_data *gdbarch_data_register_post_init (gdbarch_data_post_init_ftype *init); -extern void deprecated_set_gdbarch_data (struct gdbarch *gdbarch, - struct gdbarch_data *data, - void *pointer); extern void *gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *); @@ -2237,20 +2234,6 @@ alloc_gdbarch_data (struct gdbarch *gdbarch) gdbarch->data = GDBARCH_OBSTACK_CALLOC (gdbarch, gdbarch->nr_data, void *); } -/* Initialize the current value of the specified per-architecture - data-pointer. */ - -void -deprecated_set_gdbarch_data (struct gdbarch *gdbarch, - struct gdbarch_data *data, - void *pointer) -{ - gdb_assert (data->index < gdbarch->nr_data); - gdb_assert (gdbarch->data[data->index] == NULL); - gdb_assert (data->pre_init == NULL); - gdbarch->data[data->index] = pointer; -} - /* Return the current value of the specified per-architecture data-pointer. */ @@ -2280,11 +2263,9 @@ gdbarch_data (struct gdbarch *gdbarch, struct gdbarch_data *data) data->init_p = 1; } else - /* The architecture initialization hasn't completed - punt - - hope that the caller knows what they are doing. Once - deprecated_set_gdbarch_data has been initialized, this can be - changed to an internal error. */ - return NULL; + internal_error (__FILE__, __LINE__, + _("gdbarch post-init data field can only be used " + "after gdbarch is fully initialised")); gdb_assert (gdbarch->data[data->index] != NULL); } return gdbarch->data[data->index]; 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 (); } diff --git a/gdb/user-regs.c b/gdb/user-regs.c index cb92231..d461f85 100644 --- a/gdb/user-regs.c +++ b/gdb/user-regs.c @@ -98,16 +98,15 @@ user_reg_add_builtin (const char *name, user_reg_read_ftype *xread, static struct gdbarch_data *user_regs_data; static void * -user_regs_init (struct gdbarch *gdbarch) +user_regs_init (struct obstack *obstack) { struct user_reg *reg; - struct gdb_user_regs *regs - = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct gdb_user_regs); + struct gdb_user_regs *regs = OBSTACK_ZALLOC (obstack, struct gdb_user_regs); regs->last = ®s->first; for (reg = builtin_user_regs.first; reg != NULL; reg = reg->next) append_user_reg (regs, reg->name, reg->xread, reg->baton, - GDBARCH_OBSTACK_ZALLOC (gdbarch, struct user_reg)); + OBSTACK_ZALLOC (obstack, struct user_reg)); return regs; } @@ -117,14 +116,7 @@ user_reg_add (struct gdbarch *gdbarch, const char *name, { struct gdb_user_regs *regs = (struct gdb_user_regs *) gdbarch_data (gdbarch, user_regs_data); - - if (regs == NULL) - { - /* ULGH, called during architecture initialization. Patch - things up. */ - regs = (struct gdb_user_regs *) user_regs_init (gdbarch); - deprecated_set_gdbarch_data (gdbarch, user_regs_data, regs); - } + gdb_assert (regs != NULL); append_user_reg (regs, name, xread, baton, GDBARCH_OBSTACK_ZALLOC (gdbarch, struct user_reg)); } @@ -240,7 +232,7 @@ void _initialize_user_regs (); void _initialize_user_regs () { - user_regs_data = gdbarch_data_register_post_init (user_regs_init); + user_regs_data = gdbarch_data_register_pre_init (user_regs_init); add_cmd ("user-registers", class_maintenance, maintenance_print_user_registers, |