aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog18
-rw-r--r--gdb/gdbarch.c22
-rw-r--r--gdb/gdbarch.h3
-rwxr-xr-xgdb/gdbarch.sh25
-rw-r--r--gdb/ia64-libunwind-tdep.c15
-rw-r--r--gdb/user-regs.c18
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 = &regs->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,