ODR warning for "struct stack_item"

"struct stack_item" is defined in multiple .c files, causing ODR
warnings.  This patch renames these types.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
This commit is contained in:
Tom Tromey 2022-05-18 09:49:35 -06:00
parent cc55e4ef62
commit 0fecb1a784
4 changed files with 36 additions and 34 deletions

View File

@ -3836,18 +3836,19 @@ arm_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
/* When arguments must be pushed onto the stack, they go on in reverse
order. The code below implements a FILO (stack) to do this. */
struct stack_item
struct arm_stack_item
{
int len;
struct stack_item *prev;
struct arm_stack_item *prev;
gdb_byte *data;
};
static struct stack_item *
push_stack_item (struct stack_item *prev, const gdb_byte *contents, int len)
static struct arm_stack_item *
push_stack_item (struct arm_stack_item *prev, const gdb_byte *contents,
int len)
{
struct stack_item *si;
si = XNEW (struct stack_item);
struct arm_stack_item *si;
si = XNEW (struct arm_stack_item);
si->data = (gdb_byte *) xmalloc (len);
si->len = len;
si->prev = prev;
@ -3855,10 +3856,10 @@ push_stack_item (struct stack_item *prev, const gdb_byte *contents, int len)
return si;
}
static struct stack_item *
pop_stack_item (struct stack_item *si)
static struct arm_stack_item *
pop_stack_item (struct arm_stack_item *si)
{
struct stack_item *dead = si;
struct arm_stack_item *dead = si;
si = si->prev;
xfree (dead->data);
xfree (dead);
@ -4176,7 +4177,7 @@ arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
int argnum;
int argreg;
int nstack;
struct stack_item *si = NULL;
struct arm_stack_item *si = NULL;
int use_vfp_abi;
struct type *ftype;
unsigned vfp_regs_free = (1 << 16) - 1;

View File

@ -1199,18 +1199,19 @@ avr_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
/* When arguments must be pushed onto the stack, they go on in reverse
order. The below implements a FILO (stack) to do this. */
struct stack_item
struct avr_stack_item
{
int len;
struct stack_item *prev;
struct avr_stack_item *prev;
gdb_byte *data;
};
static struct stack_item *
push_stack_item (struct stack_item *prev, const bfd_byte *contents, int len)
static struct avr_stack_item *
push_stack_item (struct avr_stack_item *prev, const bfd_byte *contents,
int len)
{
struct stack_item *si;
si = XNEW (struct stack_item);
struct avr_stack_item *si;
si = XNEW (struct avr_stack_item);
si->data = (gdb_byte *) xmalloc (len);
si->len = len;
si->prev = prev;
@ -1218,11 +1219,10 @@ push_stack_item (struct stack_item *prev, const bfd_byte *contents, int len)
return si;
}
static struct stack_item *pop_stack_item (struct stack_item *si);
static struct stack_item *
pop_stack_item (struct stack_item *si)
static struct avr_stack_item *
pop_stack_item (struct avr_stack_item *si)
{
struct stack_item *dead = si;
struct avr_stack_item *dead = si;
si = si->prev;
xfree (dead->data);
xfree (dead);
@ -1281,7 +1281,7 @@ avr_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
int call_length = tdep->call_length;
CORE_ADDR return_pc = avr_convert_iaddr_to_raw (bp_addr);
int regnum = AVR_ARGN_REGNUM;
struct stack_item *si = NULL;
struct avr_stack_item *si = NULL;
if (return_method == return_method_struct)
{

View File

@ -656,17 +656,18 @@ static CORE_ADDR crisv32_scan_prologue (CORE_ADDR pc,
order. The below implements a FILO (stack) to do this.
Copied from d10v-tdep.c. */
struct stack_item
struct cris_stack_item
{
int len;
struct stack_item *prev;
struct cris_stack_item *prev;
gdb_byte *data;
};
static struct stack_item *
push_stack_item (struct stack_item *prev, const gdb_byte *contents, int len)
static struct cris_stack_item *
push_stack_item (struct cris_stack_item *prev, const gdb_byte *contents,
int len)
{
struct stack_item *si = XNEW (struct stack_item);
struct cris_stack_item *si = XNEW (struct cris_stack_item);
si->data = (gdb_byte *) xmalloc (len);
si->len = len;
si->prev = prev;
@ -674,10 +675,10 @@ push_stack_item (struct stack_item *prev, const gdb_byte *contents, int len)
return si;
}
static struct stack_item *
pop_stack_item (struct stack_item *si)
static struct cris_stack_item *
pop_stack_item (struct cris_stack_item *si)
{
struct stack_item *dead = si;
struct cris_stack_item *dead = si;
si = si->prev;
xfree (dead->data);
xfree (dead);
@ -798,7 +799,7 @@ cris_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
int argreg;
int argnum;
struct stack_item *si = NULL;
struct cris_stack_item *si = NULL;
/* Push the return address. */
regcache_cooked_write_unsigned (regcache, SRP_REGNUM, bp_addr);

View File

@ -307,9 +307,9 @@ csky_register_type (struct gdbarch *gdbarch, int reg_nr)
/* Data structure to marshall items in a dummy stack frame when
calling a function in the inferior. */
struct stack_item
struct csky_stack_item
{
stack_item (int len_, const gdb_byte *data_)
csky_stack_item (int len_, const gdb_byte *data_)
: len (len_), data (data_)
{}
@ -330,7 +330,7 @@ csky_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
int argreg = CSKY_ABI_A0_REGNUM;
int last_arg_regnum = CSKY_ABI_LAST_ARG_REGNUM;
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
std::vector<stack_item> stack_items;
std::vector<csky_stack_item> stack_items;
/* Set the return address. For CSKY, the return breakpoint is
always at BP_ADDR. */
@ -406,7 +406,7 @@ csky_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
}
/* Transfer the dummy stack frame to the target. */
std::vector<stack_item>::reverse_iterator iter;
std::vector<csky_stack_item>::reverse_iterator iter;
for (iter = stack_items.rbegin (); iter != stack_items.rend (); ++iter)
{
sp -= iter->len;