From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2126) id ED59D395A40A; Thu, 2 Jun 2022 15:29:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ED59D395A40A Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tom Tromey To: gdb-cvs@sourceware.org Subject: [binutils-gdb] ODR warning for "struct stack_item" X-Act-Checkin: binutils-gdb X-Git-Author: Tom Tromey X-Git-Refname: refs/heads/master X-Git-Oldrev: cc55e4ef62f102c4aff3b34ee2a134cdcc734897 X-Git-Newrev: 0fecb1a78491d3d090c05b868a970a571688f66e Message-Id: <20220602152923.ED59D395A40A@sourceware.org> Date: Thu, 2 Jun 2022 15:29:23 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Jun 2022 15:29:24 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D0fecb1a78491= d3d090c05b868a970a571688f66e commit 0fecb1a78491d3d090c05b868a970a571688f66e Author: Tom Tromey Date: Wed May 18 09:49:35 2022 -0600 ODR warning for "struct stack_item" =20 "struct stack_item" is defined in multiple .c files, causing ODR warnings. This patch renames these types. =20 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D22395 Diff: --- gdb/arm-tdep.c | 21 +++++++++++---------- gdb/avr-tdep.c | 22 +++++++++++----------- gdb/cris-tdep.c | 19 ++++++++++--------- gdb/csky-tdep.c | 8 ++++---- 4 files changed, 36 insertions(+), 34 deletions(-) diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 50ec41a66b1..35b3d9baa5e 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -3836,18 +3836,19 @@ arm_stack_frame_destroyed_p (struct gdbarch *gdbarc= h, 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. */ =20 -struct stack_item +struct arm_stack_item { int len; - struct stack_item *prev; + struct arm_stack_item *prev; gdb_byte *data; }; =20 -static struct stack_item * -push_stack_item (struct stack_item *prev, const gdb_byte *contents, int le= n) +static struct arm_stack_item * +push_stack_item (struct arm_stack_item *prev, const gdb_byte *contents, + int len) { - struct stack_item *si; - si =3D XNEW (struct stack_item); + struct arm_stack_item *si; + si =3D XNEW (struct arm_stack_item); si->data =3D (gdb_byte *) xmalloc (len); si->len =3D len; si->prev =3D prev; @@ -3855,10 +3856,10 @@ push_stack_item (struct stack_item *prev, const gdb= _byte *contents, int len) return si; } =20 -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 =3D si; + struct arm_stack_item *dead =3D si; si =3D 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 =3D NULL; + struct arm_stack_item *si =3D NULL; int use_vfp_abi; struct type *ftype; unsigned vfp_regs_free =3D (1 << 16) - 1; diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index 9e73c507b2e..e103045cb23 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -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. */ =20 -struct stack_item +struct avr_stack_item { int len; - struct stack_item *prev; + struct avr_stack_item *prev; gdb_byte *data; }; =20 -static struct stack_item * -push_stack_item (struct stack_item *prev, const bfd_byte *contents, int le= n) +static struct avr_stack_item * +push_stack_item (struct avr_stack_item *prev, const bfd_byte *contents, + int len) { - struct stack_item *si; - si =3D XNEW (struct stack_item); + struct avr_stack_item *si; + si =3D XNEW (struct avr_stack_item); si->data =3D (gdb_byte *) xmalloc (len); si->len =3D len; si->prev =3D prev; @@ -1218,11 +1219,10 @@ push_stack_item (struct stack_item *prev, const bfd= _byte *contents, int len) return si; } =20 -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 =3D si; + struct avr_stack_item *dead =3D si; si =3D si->prev; xfree (dead->data); xfree (dead); @@ -1281,7 +1281,7 @@ avr_push_dummy_call (struct gdbarch *gdbarch, struct = value *function, int call_length =3D tdep->call_length; CORE_ADDR return_pc =3D avr_convert_iaddr_to_raw (bp_addr); int regnum =3D AVR_ARGN_REGNUM; - struct stack_item *si =3D NULL; + struct avr_stack_item *si =3D NULL; =20 if (return_method =3D=3D return_method_struct) { diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 898d277b3fe..efd728a5229 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -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. */ =20 -struct stack_item +struct cris_stack_item { int len; - struct stack_item *prev; + struct cris_stack_item *prev; gdb_byte *data; }; =20 -static struct stack_item * -push_stack_item (struct stack_item *prev, const gdb_byte *contents, int le= n) +static struct cris_stack_item * +push_stack_item (struct cris_stack_item *prev, const gdb_byte *contents, + int len) { - struct stack_item *si =3D XNEW (struct stack_item); + struct cris_stack_item *si =3D XNEW (struct cris_stack_item); si->data =3D (gdb_byte *) xmalloc (len); si->len =3D len; si->prev =3D prev; @@ -674,10 +675,10 @@ push_stack_item (struct stack_item *prev, const gdb_b= yte *contents, int len) return si; } =20 -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 =3D si; + struct cris_stack_item *dead =3D si; si =3D si->prev; xfree (dead->data); xfree (dead); @@ -798,7 +799,7 @@ cris_push_dummy_call (struct gdbarch *gdbarch, struct v= alue *function, int argreg; int argnum; =20 - struct stack_item *si =3D NULL; + struct cris_stack_item *si =3D NULL; =20 /* Push the return address. */ regcache_cooked_write_unsigned (regcache, SRP_REGNUM, bp_addr); diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c index 633a87a26ea..3b4db049d96 100644 --- a/gdb/csky-tdep.c +++ b/gdb/csky-tdep.c @@ -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. */ =20 -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_) {} =20 @@ -330,7 +330,7 @@ csky_push_dummy_call (struct gdbarch *gdbarch, struct v= alue *function, int argreg =3D CSKY_ABI_A0_REGNUM; int last_arg_regnum =3D CSKY_ABI_LAST_ARG_REGNUM; enum bfd_endian byte_order =3D gdbarch_byte_order (gdbarch); - std::vector stack_items; + std::vector stack_items; =20 /* 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 v= alue *function, } =20 /* Transfer the dummy stack frame to the target. */ - std::vector::reverse_iterator iter; + std::vector::reverse_iterator iter; for (iter =3D stack_items.rbegin (); iter !=3D stack_items.rend (); ++it= er) { sp -=3D iter->len;