* [PATCH 00/14] More ODR fixes
@ 2022-05-18 18:00 Tom Tromey
2022-05-18 18:00 ` [PATCH 01/14] Fix ODR warning in observable.h Tom Tromey
` (14 more replies)
0 siblings, 15 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches
I built gdb using LTO and looked at all the -Wodr warnings.
This is PR build/22395.
I didn't fix them all, but I did fix quite a few of them.
Regression tested on x86-64 Fedora 34.
Tom
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 01/14] Fix ODR warning in observable.h
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 02/14] ODR warnings for struct symloc Tom Tromey
` (13 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
observable.h triggers an ODR warning because this line:
extern observable<struct target_ops */* target */> target_changed;
... may be the only declaration of "struct target_ops" in scope
(depending on the particular .c file) -- and this declares it in a
namespace, resulting in confusion.
This patch fixes the problem by adding a forward declaration.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/observable.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/gdb/observable.h b/gdb/observable.h
index f426c1a761f..796bf2a43c6 100644
--- a/gdb/observable.h
+++ b/gdb/observable.h
@@ -28,6 +28,7 @@ struct objfile;
struct thread_info;
struct inferior;
struct process_stratum_target;
+struct target_ops;
struct trace_state_variable;
namespace gdb
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 02/14] ODR warnings for struct symloc
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
2022-05-18 18:00 ` [PATCH 01/14] Fix ODR warning in observable.h Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 03/14] ODR warnings for struct nextfield Tom Tromey
` (12 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"struct symloc" is defined in multiple spots in gdb, causing ODR
warnings. This patch renames these.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/mdebugread.c | 10 +++++-----
gdb/xcoffread.c | 28 ++++++++++++++--------------
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index ca7c15ee63f..a2280c3ba8d 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -86,7 +86,7 @@ static struct objfile *mdebugread_objfile;
/* We put a pointer to this structure in the read_symtab_private field
of the psymtab. */
-struct symloc
+struct md_symloc
{
/* Index of the FDR that this psymtab represents. */
int fdr_idx;
@@ -102,7 +102,7 @@ struct symloc
enum language pst_language;
};
-#define PST_PRIVATE(p) ((struct symloc *)(p)->read_symtab_private)
+#define PST_PRIVATE(p) ((struct md_symloc *)(p)->read_symtab_private)
#define FDR_IDX(p) (PST_PRIVATE(p)->fdr_idx)
#define CUR_BFD(p) (PST_PRIVATE(p)->cur_bfd)
#define DEBUG_SWAP(p) (PST_PRIVATE(p)->debug_swap)
@@ -2604,8 +2604,8 @@ parse_partial_symbols (minimal_symbol_reader &reader,
textlow = 0;
pst = new legacy_psymtab (fdr_name (fh), partial_symtabs,
objfile->per_bfd, textlow);
- pst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc);
- memset (pst->read_symtab_private, 0, sizeof (struct symloc));
+ pst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, md_symloc);
+ memset (pst->read_symtab_private, 0, sizeof (struct md_symloc));
save_pst = pst;
FDR_IDX (pst) = f_idx;
@@ -4649,7 +4649,7 @@ new_psymtab (const char *name, psymtab_storage *partial_symtabs,
/* Keep a backpointer to the file's symbols. */
psymtab->read_symtab_private
- = OBSTACK_ZALLOC (&objfile->objfile_obstack, symloc);
+ = OBSTACK_ZALLOC (&objfile->objfile_obstack, md_symloc);
CUR_BFD (psymtab) = cur_bfd;
DEBUG_SWAP (psymtab) = debug_swap;
DEBUG_INFO (psymtab) = debug_info;
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index d8735d29ede..9adc841b1f1 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -59,7 +59,7 @@
/* We put a pointer to this structure in the read_symtab_private field
of the psymtab. */
-struct symloc
+struct xcoff_symloc
{
/* First symbol number for this file. */
@@ -598,7 +598,7 @@ process_linenos (CORE_ADDR start, CORE_ADDR end)
unsigned *firstLine;
offset =
- ((struct symloc *) this_symtab_psymtab->read_symtab_private)->lineno_off;
+ ((struct xcoff_symloc *) this_symtab_psymtab->read_symtab_private)->lineno_off;
if (offset == 0)
goto return_after_cleanup;
@@ -966,9 +966,9 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst)
start_compunit_symtab (objfile, filestring, NULL, file_start_addr,
pst_symtab_language);
record_debugformat (debugfmt);
- symnum = ((struct symloc *) pst->read_symtab_private)->first_symnum;
+ symnum = ((struct xcoff_symloc *) pst->read_symtab_private)->first_symnum;
max_symnum =
- symnum + ((struct symloc *) pst->read_symtab_private)->numsyms;
+ symnum + ((struct xcoff_symloc *) pst->read_symtab_private)->numsyms;
first_object_file_end = 0;
raw_symbol = xcoff->symtbl + symnum * local_symesz;
@@ -1747,7 +1747,7 @@ xcoff_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile)
/* Read in all partial symtabs on which this one is dependent. */
pst->expand_dependencies (objfile);
- if (((struct symloc *) pst->read_symtab_private)->numsyms != 0)
+ if (((struct xcoff_symloc *) pst->read_symtab_private)->numsyms != 0)
{
/* Init stuff necessary for reading in symbols. */
stabsread_init ();
@@ -1767,7 +1767,7 @@ xcoff_read_symtab (legacy_psymtab *self, struct objfile *objfile)
{
gdb_assert (!self->readin);
- if (((struct symloc *) self->read_symtab_private)->numsyms != 0
+ if (((struct xcoff_symloc *) self->read_symtab_private)->numsyms != 0
|| self->number_of_dependencies)
{
next_symbol_text_func = xcoff_next_symbol_text;
@@ -1892,8 +1892,8 @@ xcoff_start_psymtab (psymtab_storage *partial_symtabs,
objfile->per_bfd, 0);
result->read_symtab_private =
- XOBNEW (&objfile->objfile_obstack, struct symloc);
- ((struct symloc *) result->read_symtab_private)->first_symnum = first_symnum;
+ XOBNEW (&objfile->objfile_obstack, struct xcoff_symloc);
+ ((struct xcoff_symloc *) result->read_symtab_private)->first_symnum = first_symnum;
result->legacy_read_symtab = xcoff_read_symtab;
result->legacy_expand_psymtab = xcoff_expand_psymtab;
@@ -1922,10 +1922,10 @@ xcoff_end_psymtab (struct objfile *objfile, psymtab_storage *partial_symtabs,
int i;
if (capping_symbol_number != -1)
- ((struct symloc *) pst->read_symtab_private)->numsyms =
+ ((struct xcoff_symloc *) pst->read_symtab_private)->numsyms =
capping_symbol_number
- - ((struct symloc *) pst->read_symtab_private)->first_symnum;
- ((struct symloc *) pst->read_symtab_private)->lineno_off =
+ - ((struct xcoff_symloc *) pst->read_symtab_private)->first_symnum;
+ ((struct xcoff_symloc *) pst->read_symtab_private)->lineno_off =
first_fun_line_offset;
first_fun_line_offset = 0;
@@ -1947,9 +1947,9 @@ xcoff_end_psymtab (struct objfile *objfile, psymtab_storage *partial_symtabs,
legacy_psymtab *subpst =
new legacy_psymtab (include_list[i], partial_symtabs, objfile->per_bfd);
- subpst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc);
- ((struct symloc *) subpst->read_symtab_private)->first_symnum = 0;
- ((struct symloc *) subpst->read_symtab_private)->numsyms = 0;
+ subpst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, xcoff_symloc);
+ ((struct xcoff_symloc *) subpst->read_symtab_private)->first_symnum = 0;
+ ((struct xcoff_symloc *) subpst->read_symtab_private)->numsyms = 0;
/* We could save slight bits of space by only making one of these,
shared by the entire set of include files. FIXME-someday. */
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 03/14] ODR warnings for struct nextfield
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
2022-05-18 18:00 ` [PATCH 01/14] Fix ODR warning in observable.h Tom Tromey
2022-05-18 18:00 ` [PATCH 02/14] ODR warnings for struct symloc Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 04/14] ODR warning for struct field_info Tom Tromey
` (11 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"struct nextfield" is defined in multiple places in GDB. This patch
renames just the stabs one, leaving the DWARF one untouched.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/stabsread.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index 4fe2110a47f..ab74cee6487 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -61,9 +61,9 @@ int *this_object_header_files;
int n_this_object_header_files;
int n_allocated_this_object_header_files;
-struct nextfield
+struct stabs_nextfield
{
- struct nextfield *next;
+ struct stabs_nextfield *next;
/* This is the raw visibility from the stab. It is not checked
for being one of the visibilities we recognize, so code which
@@ -87,7 +87,7 @@ struct next_fnfieldlist
struct stab_field_info
{
- struct nextfield *list = nullptr;
+ struct stabs_nextfield *list = nullptr;
struct next_fnfieldlist *fnlist = nullptr;
auto_obstack obstack;
@@ -2922,7 +2922,7 @@ read_struct_fields (struct stab_field_info *fip, const char **pp,
struct type *type, struct objfile *objfile)
{
const char *p;
- struct nextfield *newobj;
+ struct stabs_nextfield *newobj;
/* We better set p right now, in case there are no fields at all... */
@@ -2938,7 +2938,7 @@ read_struct_fields (struct stab_field_info *fip, const char **pp,
{
STABS_CONTINUE (pp, objfile);
/* Get space to record the next field's data. */
- newobj = OBSTACK_ZALLOC (&fip->obstack, struct nextfield);
+ newobj = OBSTACK_ZALLOC (&fip->obstack, struct stabs_nextfield);
newobj->next = fip->list;
fip->list = newobj;
@@ -3019,7 +3019,7 @@ read_baseclasses (struct stab_field_info *fip, const char **pp,
struct type *type, struct objfile *objfile)
{
int i;
- struct nextfield *newobj;
+ struct stabs_nextfield *newobj;
if (**pp != '!')
{
@@ -3059,7 +3059,7 @@ read_baseclasses (struct stab_field_info *fip, const char **pp,
for (i = 0; i < TYPE_N_BASECLASSES (type); i++)
{
- newobj = OBSTACK_ZALLOC (&fip->obstack, struct nextfield);
+ newobj = OBSTACK_ZALLOC (&fip->obstack, struct stabs_nextfield);
newobj->next = fip->list;
fip->list = newobj;
@@ -3245,7 +3245,7 @@ attach_fields_to_type (struct stab_field_info *fip, struct type *type,
{
int nfields = 0;
int non_public_fields = 0;
- struct nextfield *scan;
+ struct stabs_nextfield *scan;
/* Count up the number of fields that we have, as well as taking note of
whether or not there are any non-public fields, which requires us to
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 04/14] ODR warning for struct field_info
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (2 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 03/14] ODR warnings for struct nextfield Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 05/14] ODR warning for struct ext_link_map Tom Tromey
` (10 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
This renames one of the instance of "struct field_info" to avoid an
ODR warning.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/rs6000-aix-tdep.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c
index ead03bf8819..867f21dc634 100644
--- a/gdb/rs6000-aix-tdep.c
+++ b/gdb/rs6000-aix-tdep.c
@@ -849,7 +849,7 @@ rs6000_aix_osabi_sniffer (bfd *abfd)
/* A structure encoding the offset and size of a field within
a struct. */
-struct field_info
+struct ldinfo_field
{
int offset;
int size;
@@ -861,13 +861,13 @@ struct field_info
struct ld_info_desc
{
- struct field_info ldinfo_next;
- struct field_info ldinfo_fd;
- struct field_info ldinfo_textorg;
- struct field_info ldinfo_textsize;
- struct field_info ldinfo_dataorg;
- struct field_info ldinfo_datasize;
- struct field_info ldinfo_filename;
+ struct ldinfo_field ldinfo_next;
+ struct ldinfo_field ldinfo_fd;
+ struct ldinfo_field ldinfo_textorg;
+ struct ldinfo_field ldinfo_textsize;
+ struct ldinfo_field ldinfo_dataorg;
+ struct ldinfo_field ldinfo_datasize;
+ struct ldinfo_field ldinfo_filename;
};
/* The following data has been generated by compiling and running
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 05/14] ODR warning for struct ext_link_map
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (3 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 04/14] ODR warning for struct field_info Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 06/14] ODR warning for "struct instruction_type" Tom Tromey
` (9 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
This renames the solib-dsbt.c copy of "struct ext_link_map" to avoid
an ODR warning.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/solib-dsbt.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 0b03f944608..6af47217261 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -107,7 +107,7 @@ struct ext_elf32_dsbt_loadaddr
ext_ptr map; /* struct elf32_dsbt_loadmap *map; */
};
-struct ext_link_map
+struct dbst_ext_link_map
{
struct ext_elf32_dsbt_loadaddr l_addr;
@@ -546,7 +546,7 @@ dsbt_current_sos (void)
building the solist chain. */
while (lm_addr)
{
- struct ext_link_map lm_buf;
+ struct dbst_ext_link_map lm_buf;
ext_Elf32_Word indexword;
CORE_ADDR map_addr;
int dsbt_index;
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 06/14] ODR warning for "struct instruction_type"
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (4 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 05/14] ODR warning for struct ext_link_map Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 07/14] ODR warning for "struct stack_item" Tom Tromey
` (8 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"struct instruction_type" is defined in multiple .c files, causing an
ODR warning. This patch renames the types.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/ia64-tdep.c | 8 ++++----
gdb/z80-tdep.c | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index dd6d5b199b2..82456dc9c98 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -75,7 +75,7 @@ static gdb::optional<gdb::byte_vector> ktab_buf;
/* An enumeration of the different IA-64 instruction types. */
-enum instruction_type
+enum ia64_instruction_type
{
A, /* Integer ALU ; I-unit or M-unit */
I, /* Non-ALU integer; I-unit */
@@ -470,7 +470,7 @@ replace_slotN_contents (gdb_byte *bundle, long long instr, int slotnum)
replace_bit_field (bundle, instr, 5+41*slotnum, 41);
}
-static const enum instruction_type template_encoding_table[32][3] =
+static const enum ia64_instruction_type template_encoding_table[32][3] =
{
{ M, I, I }, /* 00 */
{ M, I, I }, /* 01 */
@@ -510,7 +510,7 @@ static const enum instruction_type template_encoding_table[32][3] =
address of the next instruction to fetch. */
static CORE_ADDR
-fetch_instruction (CORE_ADDR addr, instruction_type *it, long long *instr)
+fetch_instruction (CORE_ADDR addr, ia64_instruction_type *it, long long *instr)
{
gdb_byte bundle[BUNDLE_LEN];
int slotnum = (int) (addr & 0x0f) / SLOT_MULTIPLIER;
@@ -1363,7 +1363,7 @@ examine_prologue (CORE_ADDR pc, CORE_ADDR lim_pc,
{
CORE_ADDR next_pc;
CORE_ADDR last_prologue_pc = pc;
- instruction_type it;
+ ia64_instruction_type it;
long long instr;
int cfm_reg = 0;
int ret_reg = 0;
diff --git a/gdb/z80-tdep.c b/gdb/z80-tdep.c
index c2d906d1402..196884af770 100644
--- a/gdb/z80-tdep.c
+++ b/gdb/z80-tdep.c
@@ -109,7 +109,7 @@ struct z80_unwind_cache
struct trad_frame_saved_reg *saved_regs;
};
-enum instruction_type
+enum z80_instruction_type
{
insn_default,
insn_z80,
@@ -144,7 +144,7 @@ struct insn_info
gdb_byte code;
gdb_byte mask;
gdb_byte size; /* without prefix(es) */
- enum instruction_type type;
+ enum z80_instruction_type type;
};
/* Constants */
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 07/14] ODR warning for "struct stack_item"
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (5 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 06/14] ODR warning for "struct instruction_type" Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 08/14] ODR warning for "struct find_targ_sec_arg" Tom Tromey
` (7 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"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
---
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 49664093f00..07836cfa1d5 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -3844,18 +3844,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;
@@ -3863,10 +3864,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);
@@ -4184,7 +4185,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;
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. */
-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)
{
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. */
-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);
diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c
index a9b53916561..4c2aa010cb4 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. */
-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;
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 08/14] ODR warning for "struct find_targ_sec_arg"
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (6 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 07/14] ODR warning for "struct stack_item" Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 09/14] ODR warning for "enum string_repr_result" Tom Tromey
` (6 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"struct find_targ_sec_arg" is defined in multiple .c files, causing
ODR warnings. This patch renames the types.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/coffread.c | 8 ++++----
gdb/xcoffread.c | 7 ++++---
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/gdb/coffread.c b/gdb/coffread.c
index 75cf646c980..474a1aa02f5 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -254,7 +254,7 @@ coff_locate_sections (bfd *abfd, asection *sectp, void *csip)
/* Return the section_offsets* that CS points to. */
static int cs_to_section (struct coff_symbol *, struct objfile *);
-struct find_targ_sec_arg
+struct coff_find_targ_sec_arg
{
int targ_index;
asection **resultp;
@@ -263,7 +263,7 @@ struct find_targ_sec_arg
static void
find_targ_sec (bfd *abfd, asection *sect, void *obj)
{
- struct find_targ_sec_arg *args = (struct find_targ_sec_arg *) obj;
+ struct coff_find_targ_sec_arg *args = (struct coff_find_targ_sec_arg *) obj;
if (sect->target_index == args->targ_index)
*args->resultp = sect;
@@ -274,7 +274,7 @@ static struct bfd_section*
cs_to_bfd_section (struct coff_symbol *cs, struct objfile *objfile)
{
asection *sect = NULL;
- struct find_targ_sec_arg args;
+ struct coff_find_targ_sec_arg args;
args.targ_index = cs->c_secnum;
args.resultp = §
@@ -301,7 +301,7 @@ static CORE_ADDR
cs_section_address (struct coff_symbol *cs, bfd *abfd)
{
asection *sect = NULL;
- struct find_targ_sec_arg args;
+ struct coff_find_targ_sec_arg args;
CORE_ADDR addr = 0;
args.targ_index = cs->c_secnum;
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 9adc841b1f1..250bd9f4a94 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -249,7 +249,7 @@ static void process_linenos (CORE_ADDR, CORE_ADDR);
static int secnum_to_section (int, struct objfile *);
static asection *secnum_to_bfd_section (int, struct objfile *);
-struct find_targ_sec_arg
+struct xcoff_find_targ_sec_arg
{
int targ_index;
int *resultp;
@@ -262,7 +262,8 @@ static void find_targ_sec (bfd *, asection *, void *);
static void
find_targ_sec (bfd *abfd, asection *sect, void *obj)
{
- struct find_targ_sec_arg *args = (struct find_targ_sec_arg *) obj;
+ struct xcoff_find_targ_sec_arg *args
+ = (struct xcoff_find_targ_sec_arg *) obj;
struct objfile *objfile = args->objfile;
if (sect->target_index == args->targ_index)
@@ -290,7 +291,7 @@ static void
xcoff_secnum_to_sections (int n_scnum, struct objfile *objfile,
asection **bfd_sect, int *secnum)
{
- struct find_targ_sec_arg args;
+ struct xcoff_find_targ_sec_arg args;
args.targ_index = n_scnum;
args.resultp = secnum;
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 09/14] ODR warning for "enum string_repr_result"
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (7 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 08/14] ODR warning for "struct find_targ_sec_arg" Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 10/14] ODR warnings from overlay constants Tom Tromey
` (5 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"enum string_repr_result" is defined in multiple .c files, causing ODR
warnings. This patch renames the types.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/guile/scm-pretty-print.c | 8 ++++----
gdb/python/py-prettyprint.c | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/gdb/guile/scm-pretty-print.c b/gdb/guile/scm-pretty-print.c
index 2bb63e849d1..e2bc19820d7 100644
--- a/gdb/guile/scm-pretty-print.c
+++ b/gdb/guile/scm-pretty-print.c
@@ -31,7 +31,7 @@
/* Return type of print_string_repr. */
-enum string_repr_result
+enum guile_string_repr_result
{
/* The string method returned None. */
STRING_REPR_NONE,
@@ -638,7 +638,7 @@ ppscm_print_exception_unless_memory_error (SCM exception,
/* Helper for gdbscm_apply_val_pretty_printer which calls to_string and
formats the result. */
-static enum string_repr_result
+static enum guile_string_repr_result
ppscm_print_string_repr (SCM printer, enum display_hint hint,
struct ui_file *stream, int recurse,
const struct value_print_options *options,
@@ -647,7 +647,7 @@ ppscm_print_string_repr (SCM printer, enum display_hint hint,
{
struct value *replacement = NULL;
SCM str_scm;
- enum string_repr_result result = STRING_REPR_ERROR;
+ enum guile_string_repr_result result = STRING_REPR_ERROR;
str_scm = ppscm_pretty_print_one_value (printer, &replacement,
gdbarch, language);
@@ -963,7 +963,7 @@ gdbscm_apply_val_pretty_printer (const struct extension_language_defn *extlang,
SCM val_obj = SCM_BOOL_F;
enum display_hint hint;
enum ext_lang_rc result = EXT_LANG_RC_NOP;
- enum string_repr_result print_result;
+ enum guile_string_repr_result print_result;
if (value_lazy (value))
value_fetch_lazy (value);
diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c
index c9bbd726412..a25a1b65944 100644
--- a/gdb/python/py-prettyprint.c
+++ b/gdb/python/py-prettyprint.c
@@ -29,7 +29,7 @@
/* Return type of print_string_repr. */
-enum string_repr_result
+enum gdbpy_string_repr_result
{
/* The string method returned None. */
string_repr_none,
@@ -273,7 +273,7 @@ print_stack_unless_memory_error (struct ui_file *stream)
/* Helper for gdbpy_apply_val_pretty_printer which calls to_string and
formats the result. */
-static enum string_repr_result
+static enum gdbpy_string_repr_result
print_string_repr (PyObject *printer, const char *hint,
struct ui_file *stream, int recurse,
const struct value_print_options *options,
@@ -281,7 +281,7 @@ print_string_repr (PyObject *printer, const char *hint,
struct gdbarch *gdbarch)
{
struct value *replacement = NULL;
- enum string_repr_result result = string_repr_ok;
+ enum gdbpy_string_repr_result result = string_repr_ok;
gdbpy_ref<> py_str = pretty_print_one_value (printer, &replacement);
if (py_str != NULL)
@@ -572,7 +572,7 @@ gdbpy_apply_val_pretty_printer (const struct extension_language_defn *extlang,
{
struct type *type = value_type (value);
struct gdbarch *gdbarch = type->arch ();
- enum string_repr_result print_result;
+ enum gdbpy_string_repr_result print_result;
if (value_lazy (value))
value_fetch_lazy (value);
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 10/14] ODR warnings from overlay constants
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (8 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 09/14] ODR warning for "enum string_repr_result" Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 11/14] ODR warnings for "struct insn_info" Tom Tromey
` (4 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
Some overlay-related constants are duplicated in z80-tdep.c, causing
ODR warnings. This patch renames just the z80-specific ones.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/z80-tdep.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/gdb/z80-tdep.c b/gdb/z80-tdep.c
index 196884af770..0b282237c4a 100644
--- a/gdb/z80-tdep.c
+++ b/gdb/z80-tdep.c
@@ -860,9 +860,9 @@ z80_software_single_step (struct regcache *regcache)
static unsigned (*cache_ovly_region_table)[3] = 0;
static unsigned cache_novly_regions;
static CORE_ADDR cache_ovly_region_table_base = 0;
-enum ovly_index
+enum z80_ovly_index
{
- VMA, OSIZE, MAPPED_TO_LMA
+ Z80_VMA, Z80_OSIZE, Z80_MAPPED_TO_LMA
};
static void
@@ -952,12 +952,12 @@ z80_overlay_update_1 (struct obj_section *osect)
/* find region corresponding to the section VMA */
for (i = 0; i < cache_novly_regions; i++)
- if (cache_ovly_region_table[i][VMA] == vma)
+ if (cache_ovly_region_table[i][Z80_VMA] == vma)
break;
if (i == cache_novly_regions)
return 0; /* no such region */
- lma = cache_ovly_region_table[i][MAPPED_TO_LMA];
+ lma = cache_ovly_region_table[i][Z80_MAPPED_TO_LMA];
i = 0;
/* we have interest for sections with same VMA */
@@ -995,9 +995,9 @@ z80_overlay_update (struct obj_section *osect)
bfd_vma vma = bfd_section_vma (bsect);
for (int i = 0; i < cache_novly_regions; ++i)
- if (cache_ovly_region_table[i][VMA] == vma)
+ if (cache_ovly_region_table[i][Z80_VMA] == vma)
osect->ovly_mapped =
- (cache_ovly_region_table[i][MAPPED_TO_LMA] == lma);
+ (cache_ovly_region_table[i][Z80_MAPPED_TO_LMA] == lma);
}
}
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 11/14] ODR warnings for "struct insn_info"
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (9 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 10/14] ODR warnings from overlay constants Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 12/14] ODR warnings for "struct insn_decode_record_t" Tom Tromey
` (3 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"struct insn_info" is defined in multiple .c files, causing ODR
warnings. This patch renames the type in z80-tdep.c, leaving the
other one alone.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/z80-tdep.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/gdb/z80-tdep.c b/gdb/z80-tdep.c
index 0b282237c4a..d27e567c358 100644
--- a/gdb/z80-tdep.c
+++ b/gdb/z80-tdep.c
@@ -139,7 +139,7 @@ enum z80_instruction_type
insn_force_nop /* invalid opcode prefix */
};
-struct insn_info
+struct z80_insn_info
{
gdb_byte code;
gdb_byte mask;
@@ -149,7 +149,7 @@ struct insn_info
/* Constants */
-static const struct insn_info *
+static const struct z80_insn_info *
z80_get_insn_info (struct gdbarch *gdbarch, const gdb_byte *buf, int *size);
static const char *z80_reg_names[] =
@@ -776,7 +776,7 @@ z80_software_single_step (struct regcache *regcache)
ULONGEST addr;
int opcode;
int size;
- const struct insn_info *info;
+ const struct z80_insn_info *info;
std::vector<CORE_ADDR> ret (1);
struct gdbarch *gdbarch = target_gdbarch ();
@@ -1007,7 +1007,7 @@ z80_insn_is_call (struct gdbarch *gdbarch, CORE_ADDR addr)
{
gdb_byte buf[8];
int size;
- const struct insn_info *info;
+ const struct z80_insn_info *info;
read_memory (addr, buf, sizeof(buf));
info = z80_get_insn_info (gdbarch, buf, &size);
if (info)
@@ -1027,7 +1027,7 @@ z80_insn_is_ret (struct gdbarch *gdbarch, CORE_ADDR addr)
{
gdb_byte buf[8];
int size;
- const struct insn_info *info;
+ const struct z80_insn_info *info;
read_memory (addr, buf, sizeof(buf));
info = z80_get_insn_info (gdbarch, buf, &size);
if (info)
@@ -1046,7 +1046,7 @@ z80_insn_is_jump (struct gdbarch *gdbarch, CORE_ADDR addr)
{
gdb_byte buf[8];
int size;
- const struct insn_info *info;
+ const struct z80_insn_info *info;
read_memory (addr, buf, sizeof(buf));
info = z80_get_insn_info (gdbarch, buf, &size);
if (info)
@@ -1190,7 +1190,7 @@ z80_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
}
/* Table to disassemble machine codes without prefix. */
-static const struct insn_info
+static const struct z80_insn_info
ez80_main_insn_table[] =
{ /* table with double prefix check */
{ 0100, 0377, 0, insn_force_nop}, //double prefix
@@ -1237,7 +1237,7 @@ ez80_main_insn_table[] =
{ 0000, 0000, 1, insn_default } //others
} ;
-static const struct insn_info
+static const struct z80_insn_info
ez80_adl_main_insn_table[] =
{ /* table with double prefix check */
{ 0100, 0377, 0, insn_force_nop}, //double prefix
@@ -1286,7 +1286,7 @@ ez80_adl_main_insn_table[] =
/* ED prefix opcodes table.
Note the instruction length does include the ED prefix (+ 1 byte)
*/
-static const struct insn_info
+static const struct z80_insn_info
ez80_ed_insn_table[] =
{
/* eZ80 only instructions */
@@ -1306,7 +1306,7 @@ ez80_ed_insn_table[] =
{ 0000, 0000, 1, insn_default }
};
-static const struct insn_info
+static const struct z80_insn_info
ez80_adl_ed_insn_table[] =
{
{ 0002, 0366, 2, insn_default }, //"lea rr,ii+d"
@@ -1324,7 +1324,7 @@ ez80_adl_ed_insn_table[] =
};
/* table for FD and DD prefixed instructions */
-static const struct insn_info
+static const struct z80_insn_info
ez80_ddfd_insn_table[] =
{
/* ez80 only instructions */
@@ -1355,7 +1355,7 @@ ez80_ddfd_insn_table[] =
{ 0000, 0000, 0, insn_default } //not an instruction, exec DD/FD as NOP
};
-static const struct insn_info
+static const struct z80_insn_info
ez80_adl_ddfd_insn_table[] =
{
{ 0007, 0307, 2, insn_default }, //"ld rr,(ii+d)"
@@ -1386,11 +1386,11 @@ ez80_adl_ddfd_insn_table[] =
/* Return pointer to instruction information structure corresponded to opcode
in buf. */
-static const struct insn_info *
+static const struct z80_insn_info *
z80_get_insn_info (struct gdbarch *gdbarch, const gdb_byte *buf, int *size)
{
int code;
- const struct insn_info *info;
+ const struct z80_insn_info *info;
unsigned long mach = gdbarch_bfd_arch_info (gdbarch)->mach;
*size = 0;
switch (mach)
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 12/14] ODR warnings for "struct insn_decode_record_t"
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (10 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 11/14] ODR warnings for "struct insn_info" Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 13/14] ODR warnings for "struct coff_symbol" Tom Tromey
` (2 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"struct insn_decode_record_t" is defined in multiple .c files, causing
ODR warnings. This patch renames the types, and removes the use of
"typedef" here -- this is a C-ism that's no longer needed.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/aarch64-tdep.c | 28 +++++++-------
gdb/arm-tdep.c | 95 +++++++++++++++++++++++-----------------------
2 files changed, 62 insertions(+), 61 deletions(-)
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index 9d06ebfe27c..141dc712898 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -3768,7 +3768,7 @@ enum aarch64_record_result
AARCH64_RECORD_UNKNOWN
};
-typedef struct insn_decode_record_t
+struct aarch64_insn_decode_record
{
struct gdbarch *gdbarch;
struct regcache *regcache;
@@ -3778,12 +3778,12 @@ typedef struct insn_decode_record_t
uint32_t reg_rec_count; /* Count of register records. */
uint32_t *aarch64_regs; /* Registers to be recorded. */
struct aarch64_mem_r *aarch64_mems; /* Memory locations to be recorded. */
-} insn_decode_record;
+};
/* Record handler for data processing - register instructions. */
static unsigned int
-aarch64_record_data_proc_reg (insn_decode_record *aarch64_insn_r)
+aarch64_record_data_proc_reg (aarch64_insn_decode_record *aarch64_insn_r)
{
uint8_t reg_rd, insn_bits24_27, insn_bits21_23;
uint32_t record_buf[4];
@@ -3859,7 +3859,7 @@ aarch64_record_data_proc_reg (insn_decode_record *aarch64_insn_r)
/* Record handler for data processing - immediate instructions. */
static unsigned int
-aarch64_record_data_proc_imm (insn_decode_record *aarch64_insn_r)
+aarch64_record_data_proc_imm (aarch64_insn_decode_record *aarch64_insn_r)
{
uint8_t reg_rd, insn_bit23, insn_bits24_27, setflags;
uint32_t record_buf[4];
@@ -3904,7 +3904,7 @@ aarch64_record_data_proc_imm (insn_decode_record *aarch64_insn_r)
/* Record handler for branch, exception generation and system instructions. */
static unsigned int
-aarch64_record_branch_except_sys (insn_decode_record *aarch64_insn_r)
+aarch64_record_branch_except_sys (aarch64_insn_decode_record *aarch64_insn_r)
{
aarch64_gdbarch_tdep *tdep
@@ -3986,7 +3986,7 @@ aarch64_record_branch_except_sys (insn_decode_record *aarch64_insn_r)
/* Record handler for advanced SIMD load and store instructions. */
static unsigned int
-aarch64_record_asimd_load_store (insn_decode_record *aarch64_insn_r)
+aarch64_record_asimd_load_store (aarch64_insn_decode_record *aarch64_insn_r)
{
CORE_ADDR address;
uint64_t addr_offset = 0;
@@ -4152,7 +4152,7 @@ aarch64_record_asimd_load_store (insn_decode_record *aarch64_insn_r)
/* Record handler for load and store instructions. */
static unsigned int
-aarch64_record_load_store (insn_decode_record *aarch64_insn_r)
+aarch64_record_load_store (aarch64_insn_decode_record *aarch64_insn_r)
{
uint8_t insn_bits24_27, insn_bits28_29, insn_bits10_11;
uint8_t insn_bit23, insn_bit21;
@@ -4440,7 +4440,7 @@ aarch64_record_load_store (insn_decode_record *aarch64_insn_r)
/* Record handler for data processing SIMD and floating point instructions. */
static unsigned int
-aarch64_record_data_proc_simd_fp (insn_decode_record *aarch64_insn_r)
+aarch64_record_data_proc_simd_fp (aarch64_insn_decode_record *aarch64_insn_r)
{
uint8_t insn_bit21, opcode, rmode, reg_rd;
uint8_t insn_bits24_27, insn_bits28_31, insn_bits10_11, insn_bits12_15;
@@ -4593,7 +4593,7 @@ aarch64_record_data_proc_simd_fp (insn_decode_record *aarch64_insn_r)
/* Decodes insns type and invokes its record handler. */
static unsigned int
-aarch64_record_decode_insn_handler (insn_decode_record *aarch64_insn_r)
+aarch64_record_decode_insn_handler (aarch64_insn_decode_record *aarch64_insn_r)
{
uint32_t ins_bit25, ins_bit26, ins_bit27, ins_bit28;
@@ -4628,7 +4628,7 @@ aarch64_record_decode_insn_handler (insn_decode_record *aarch64_insn_r)
/* Cleans up local record registers and memory allocations. */
static void
-deallocate_reg_mem (insn_decode_record *record)
+deallocate_reg_mem (aarch64_insn_decode_record *record)
{
xfree (record->aarch64_regs);
xfree (record->aarch64_mems);
@@ -4648,9 +4648,9 @@ aarch64_process_record_test (void)
struct gdbarch *gdbarch = gdbarch_find_by_info (info);
SELF_CHECK (gdbarch != NULL);
- insn_decode_record aarch64_record;
+ aarch64_insn_decode_record aarch64_record;
- memset (&aarch64_record, 0, sizeof (insn_decode_record));
+ memset (&aarch64_record, 0, sizeof (aarch64_insn_decode_record));
aarch64_record.regcache = NULL;
aarch64_record.this_addr = 0;
aarch64_record.gdbarch = gdbarch;
@@ -4680,10 +4680,10 @@ aarch64_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
uint8_t insn_size = 4;
uint32_t ret = 0;
gdb_byte buf[insn_size];
- insn_decode_record aarch64_record;
+ aarch64_insn_decode_record aarch64_record;
memset (&buf[0], 0, insn_size);
- memset (&aarch64_record, 0, sizeof (insn_decode_record));
+ memset (&aarch64_record, 0, sizeof (aarch64_insn_decode_record));
target_read_memory (insn_addr, &buf[0], insn_size);
aarch64_record.aarch64_insn
= (uint32_t) extract_unsigned_integer (&buf[0],
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 07836cfa1d5..ed556f9c62b 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -10671,7 +10671,7 @@ struct arm_mem_r
contains list of to-be-modified registers and
memory blocks (on return from decode_insn()). */
-typedef struct insn_decode_record_t
+struct arm_insn_decode_record
{
struct gdbarch *gdbarch;
struct regcache *regcache;
@@ -10684,7 +10684,7 @@ typedef struct insn_decode_record_t
uint32_t reg_rec_count; /* No of reg records. */
uint32_t *arm_regs; /* Registers to be saved for this record. */
struct arm_mem_r *arm_mems; /* Memory to be saved for this record. */
-} insn_decode_record;
+};
/* Checks ARM SBZ and SBO mandatory fields. */
@@ -10732,7 +10732,7 @@ enum record_type_t
static int
-arm_record_strx (insn_decode_record *arm_insn_r, uint32_t *record_buf,
+arm_record_strx (arm_insn_decode_record *arm_insn_r, uint32_t *record_buf,
uint32_t *record_buf_mem, arm_record_strx_t str_type)
{
@@ -10900,7 +10900,7 @@ arm_record_strx (insn_decode_record *arm_insn_r, uint32_t *record_buf,
/* Handling ARM extension space insns. */
static int
-arm_record_extension_space (insn_decode_record *arm_insn_r)
+arm_record_extension_space (arm_insn_decode_record *arm_insn_r)
{
int ret = 0; /* Return value: -1:record failure ; 0:success */
uint32_t opcode1 = 0, opcode2 = 0, insn_op1 = 0;
@@ -11163,7 +11163,7 @@ arm_record_extension_space (insn_decode_record *arm_insn_r)
/* Handling opcode 000 insns. */
static int
-arm_record_data_proc_misc_ld_str (insn_decode_record *arm_insn_r)
+arm_record_data_proc_misc_ld_str (arm_insn_decode_record *arm_insn_r)
{
struct regcache *reg_cache = arm_insn_r->regcache;
uint32_t record_buf[8], record_buf_mem[8];
@@ -11456,7 +11456,7 @@ arm_record_data_proc_misc_ld_str (insn_decode_record *arm_insn_r)
/* Handling opcode 001 insns. */
static int
-arm_record_data_proc_imm (insn_decode_record *arm_insn_r)
+arm_record_data_proc_imm (arm_insn_decode_record *arm_insn_r)
{
uint32_t record_buf[8], record_buf_mem[8];
@@ -11500,7 +11500,7 @@ arm_record_data_proc_imm (insn_decode_record *arm_insn_r)
}
static int
-arm_record_media (insn_decode_record *arm_insn_r)
+arm_record_media (arm_insn_decode_record *arm_insn_r)
{
uint32_t record_buf[8];
@@ -11584,7 +11584,7 @@ arm_record_media (insn_decode_record *arm_insn_r)
/* Handle ARM mode instructions with opcode 010. */
static int
-arm_record_ld_st_imm_offset (insn_decode_record *arm_insn_r)
+arm_record_ld_st_imm_offset (arm_insn_decode_record *arm_insn_r)
{
struct regcache *reg_cache = arm_insn_r->regcache;
@@ -11675,7 +11675,7 @@ arm_record_ld_st_imm_offset (insn_decode_record *arm_insn_r)
/* Handling opcode 011 insns. */
static int
-arm_record_ld_st_reg_offset (insn_decode_record *arm_insn_r)
+arm_record_ld_st_reg_offset (arm_insn_decode_record *arm_insn_r)
{
struct regcache *reg_cache = arm_insn_r->regcache;
@@ -11941,7 +11941,7 @@ arm_record_ld_st_reg_offset (insn_decode_record *arm_insn_r)
/* Handle ARM mode instructions with opcode 100. */
static int
-arm_record_ld_st_multiple (insn_decode_record *arm_insn_r)
+arm_record_ld_st_multiple (arm_insn_decode_record *arm_insn_r)
{
struct regcache *reg_cache = arm_insn_r->regcache;
uint32_t register_count = 0, register_bits;
@@ -12041,7 +12041,7 @@ arm_record_ld_st_multiple (insn_decode_record *arm_insn_r)
/* Handling opcode 101 insns. */
static int
-arm_record_b_bl (insn_decode_record *arm_insn_r)
+arm_record_b_bl (arm_insn_decode_record *arm_insn_r)
{
uint32_t record_buf[8];
@@ -12061,7 +12061,7 @@ arm_record_b_bl (insn_decode_record *arm_insn_r)
}
static int
-arm_record_unsupported_insn (insn_decode_record *arm_insn_r)
+arm_record_unsupported_insn (arm_insn_decode_record *arm_insn_r)
{
gdb_printf (gdb_stderr,
_("Process record does not support instruction "
@@ -12074,7 +12074,7 @@ arm_record_unsupported_insn (insn_decode_record *arm_insn_r)
/* Record handler for vector data transfer instructions. */
static int
-arm_record_vdata_transfer_insn (insn_decode_record *arm_insn_r)
+arm_record_vdata_transfer_insn (arm_insn_decode_record *arm_insn_r)
{
uint32_t bits_a, bit_c, bit_l, reg_t, reg_v;
uint32_t record_buf[4];
@@ -12160,7 +12160,7 @@ arm_record_vdata_transfer_insn (insn_decode_record *arm_insn_r)
/* Record handler for extension register load/store instructions. */
static int
-arm_record_exreg_ld_st_insn (insn_decode_record *arm_insn_r)
+arm_record_exreg_ld_st_insn (arm_insn_decode_record *arm_insn_r)
{
uint32_t opcode, single_reg;
uint8_t op_vldm_vstm;
@@ -12355,7 +12355,7 @@ arm_record_exreg_ld_st_insn (insn_decode_record *arm_insn_r)
/* Record handler for arm/thumb mode VFP data processing instructions. */
static int
-arm_record_vfp_data_proc_insn (insn_decode_record *arm_insn_r)
+arm_record_vfp_data_proc_insn (arm_insn_decode_record *arm_insn_r)
{
uint32_t opc1, opc2, opc3, dp_op_sz, bit_d, reg_vd;
uint32_t record_buf[4];
@@ -12567,7 +12567,7 @@ arm_record_vfp_data_proc_insn (insn_decode_record *arm_insn_r)
/* Handling opcode 110 insns. */
static int
-arm_record_asimd_vfp_coproc (insn_decode_record *arm_insn_r)
+arm_record_asimd_vfp_coproc (arm_insn_decode_record *arm_insn_r)
{
uint32_t op1, op1_ebit, coproc;
@@ -12621,7 +12621,7 @@ arm_record_asimd_vfp_coproc (insn_decode_record *arm_insn_r)
/* Handling opcode 111 insns. */
static int
-arm_record_coproc_data_proc (insn_decode_record *arm_insn_r)
+arm_record_coproc_data_proc (arm_insn_decode_record *arm_insn_r)
{
uint32_t op, op1_ebit, coproc, bits_24_25;
arm_gdbarch_tdep *tdep
@@ -12752,7 +12752,7 @@ arm_record_coproc_data_proc (insn_decode_record *arm_insn_r)
/* Handling opcode 000 insns. */
static int
-thumb_record_shift_add_sub (insn_decode_record *thumb_insn_r)
+thumb_record_shift_add_sub (arm_insn_decode_record *thumb_insn_r)
{
uint32_t record_buf[8];
uint32_t reg_src1 = 0;
@@ -12772,7 +12772,7 @@ thumb_record_shift_add_sub (insn_decode_record *thumb_insn_r)
/* Handling opcode 001 insns. */
static int
-thumb_record_add_sub_cmp_mov (insn_decode_record *thumb_insn_r)
+thumb_record_add_sub_cmp_mov (arm_insn_decode_record *thumb_insn_r)
{
uint32_t record_buf[8];
uint32_t reg_src1 = 0;
@@ -12791,7 +12791,7 @@ thumb_record_add_sub_cmp_mov (insn_decode_record *thumb_insn_r)
/* Handling opcode 010 insns. */
static int
-thumb_record_ld_st_reg_offset (insn_decode_record *thumb_insn_r)
+thumb_record_ld_st_reg_offset (arm_insn_decode_record *thumb_insn_r)
{
struct regcache *reg_cache = thumb_insn_r->regcache;
uint32_t record_buf[8], record_buf_mem[8];
@@ -12883,7 +12883,7 @@ thumb_record_ld_st_reg_offset (insn_decode_record *thumb_insn_r)
/* Handling opcode 001 insns. */
static int
-thumb_record_ld_st_imm_offset (insn_decode_record *thumb_insn_r)
+thumb_record_ld_st_imm_offset (arm_insn_decode_record *thumb_insn_r)
{
struct regcache *reg_cache = thumb_insn_r->regcache;
uint32_t record_buf[8], record_buf_mem[8];
@@ -12923,7 +12923,7 @@ thumb_record_ld_st_imm_offset (insn_decode_record *thumb_insn_r)
/* Handling opcode 100 insns. */
static int
-thumb_record_ld_st_stack (insn_decode_record *thumb_insn_r)
+thumb_record_ld_st_stack (arm_insn_decode_record *thumb_insn_r)
{
struct regcache *reg_cache = thumb_insn_r->regcache;
uint32_t record_buf[8], record_buf_mem[8];
@@ -12979,7 +12979,7 @@ thumb_record_ld_st_stack (insn_decode_record *thumb_insn_r)
/* Handling opcode 101 insns. */
static int
-thumb_record_misc (insn_decode_record *thumb_insn_r)
+thumb_record_misc (arm_insn_decode_record *thumb_insn_r)
{
struct regcache *reg_cache = thumb_insn_r->regcache;
@@ -13110,7 +13110,7 @@ thumb_record_misc (insn_decode_record *thumb_insn_r)
/* Handling opcode 110 insns. */
static int
-thumb_record_ldm_stm_swi (insn_decode_record *thumb_insn_r)
+thumb_record_ldm_stm_swi (arm_insn_decode_record *thumb_insn_r)
{
arm_gdbarch_tdep *tdep
= (arm_gdbarch_tdep *) gdbarch_tdep (thumb_insn_r->gdbarch);
@@ -13195,7 +13195,7 @@ thumb_record_ldm_stm_swi (insn_decode_record *thumb_insn_r)
/* Handling opcode 111 insns. */
static int
-thumb_record_branch (insn_decode_record *thumb_insn_r)
+thumb_record_branch (arm_insn_decode_record *thumb_insn_r)
{
uint32_t record_buf[8];
uint32_t bits_h = 0;
@@ -13227,7 +13227,7 @@ thumb_record_branch (insn_decode_record *thumb_insn_r)
/* Handler for thumb2 load/store multiple instructions. */
static int
-thumb2_record_ld_st_multiple (insn_decode_record *thumb2_insn_r)
+thumb2_record_ld_st_multiple (arm_insn_decode_record *thumb2_insn_r)
{
struct regcache *reg_cache = thumb2_insn_r->regcache;
@@ -13322,7 +13322,7 @@ thumb2_record_ld_st_multiple (insn_decode_record *thumb2_insn_r)
instructions. */
static int
-thumb2_record_ld_st_dual_ex_tbb (insn_decode_record *thumb2_insn_r)
+thumb2_record_ld_st_dual_ex_tbb (arm_insn_decode_record *thumb2_insn_r)
{
struct regcache *reg_cache = thumb2_insn_r->regcache;
@@ -13439,7 +13439,7 @@ thumb2_record_ld_st_dual_ex_tbb (insn_decode_record *thumb2_insn_r)
instructions. */
static int
-thumb2_record_data_proc_sreg_mimm (insn_decode_record *thumb2_insn_r)
+thumb2_record_data_proc_sreg_mimm (arm_insn_decode_record *thumb2_insn_r)
{
uint32_t reg_rd, op;
uint32_t record_buf[8];
@@ -13468,7 +13468,7 @@ thumb2_record_data_proc_sreg_mimm (insn_decode_record *thumb2_insn_r)
registers. */
static int
-thumb2_record_ps_dest_generic (insn_decode_record *thumb2_insn_r)
+thumb2_record_ps_dest_generic (arm_insn_decode_record *thumb2_insn_r)
{
uint32_t reg_rd;
uint32_t record_buf[8];
@@ -13487,7 +13487,7 @@ thumb2_record_ps_dest_generic (insn_decode_record *thumb2_insn_r)
/* Handler for thumb2 branch and miscellaneous control instructions. */
static int
-thumb2_record_branch_misc_cntrl (insn_decode_record *thumb2_insn_r)
+thumb2_record_branch_misc_cntrl (arm_insn_decode_record *thumb2_insn_r)
{
uint32_t op, op1, op2;
uint32_t record_buf[8];
@@ -13527,7 +13527,7 @@ thumb2_record_branch_misc_cntrl (insn_decode_record *thumb2_insn_r)
/* Handler for thumb2 store single data item instructions. */
static int
-thumb2_record_str_single_data (insn_decode_record *thumb2_insn_r)
+thumb2_record_str_single_data (arm_insn_decode_record *thumb2_insn_r)
{
struct regcache *reg_cache = thumb2_insn_r->regcache;
@@ -13617,7 +13617,7 @@ thumb2_record_str_single_data (insn_decode_record *thumb2_insn_r)
/* Handler for thumb2 load memory hints instructions. */
static int
-thumb2_record_ld_mem_hints (insn_decode_record *thumb2_insn_r)
+thumb2_record_ld_mem_hints (arm_insn_decode_record *thumb2_insn_r)
{
uint32_t record_buf[8];
uint32_t reg_rt, reg_rn;
@@ -13643,7 +13643,7 @@ thumb2_record_ld_mem_hints (insn_decode_record *thumb2_insn_r)
/* Handler for thumb2 load word instructions. */
static int
-thumb2_record_ld_word (insn_decode_record *thumb2_insn_r)
+thumb2_record_ld_word (arm_insn_decode_record *thumb2_insn_r)
{
uint32_t record_buf[8];
@@ -13660,7 +13660,7 @@ thumb2_record_ld_word (insn_decode_record *thumb2_insn_r)
divide instructions. */
static int
-thumb2_record_lmul_lmla_div (insn_decode_record *thumb2_insn_r)
+thumb2_record_lmul_lmla_div (arm_insn_decode_record *thumb2_insn_r)
{
uint32_t opcode1 = 0, opcode2 = 0;
uint32_t record_buf[8];
@@ -13696,7 +13696,7 @@ thumb2_record_lmul_lmla_div (insn_decode_record *thumb2_insn_r)
/* Record handler for thumb32 coprocessor instructions. */
static int
-thumb2_record_coproc_insn (insn_decode_record *thumb2_insn_r)
+thumb2_record_coproc_insn (arm_insn_decode_record *thumb2_insn_r)
{
if (bit (thumb2_insn_r->arm_insn, 25))
return arm_record_coproc_data_proc (thumb2_insn_r);
@@ -13707,7 +13707,7 @@ thumb2_record_coproc_insn (insn_decode_record *thumb2_insn_r)
/* Record handler for advance SIMD structure load/store instructions. */
static int
-thumb2_record_asimd_struct_ld_st (insn_decode_record *thumb2_insn_r)
+thumb2_record_asimd_struct_ld_st (arm_insn_decode_record *thumb2_insn_r)
{
struct regcache *reg_cache = thumb2_insn_r->regcache;
uint32_t l_bit, a_bit, b_bits;
@@ -13895,7 +13895,7 @@ thumb2_record_asimd_struct_ld_st (insn_decode_record *thumb2_insn_r)
/* Decodes thumb2 instruction type and invokes its record handler. */
static unsigned int
-thumb2_record_decode_insn_handler (insn_decode_record *thumb2_insn_r)
+thumb2_record_decode_insn_handler (arm_insn_decode_record *thumb2_insn_r)
{
uint32_t op, op1, op2;
@@ -14029,7 +14029,7 @@ and positive val on failure. */
static int
extract_arm_insn (abstract_memory_reader& reader,
- insn_decode_record *insn_record, uint32_t insn_size)
+ arm_insn_decode_record *insn_record, uint32_t insn_size)
{
gdb_byte buf[insn_size];
@@ -14043,13 +14043,14 @@ extract_arm_insn (abstract_memory_reader& reader,
return 0;
}
-typedef int (*sti_arm_hdl_fp_t) (insn_decode_record*);
+typedef int (*sti_arm_hdl_fp_t) (arm_insn_decode_record*);
/* Decode arm/thumb insn depending on condition cods and opcodes; and
dispatch it. */
static int
-decode_insn (abstract_memory_reader &reader, insn_decode_record *arm_record,
+decode_insn (abstract_memory_reader &reader,
+ arm_insn_decode_record *arm_record,
record_type_t record_type, uint32_t insn_size)
{
@@ -14200,9 +14201,9 @@ arm_record_test (void)
/* 16-bit Thumb instructions. */
{
- insn_decode_record arm_record;
+ arm_insn_decode_record arm_record;
- memset (&arm_record, 0, sizeof (insn_decode_record));
+ memset (&arm_record, 0, sizeof (arm_insn_decode_record));
arm_record.gdbarch = gdbarch;
static const uint16_t insns[] = {
@@ -14234,9 +14235,9 @@ arm_record_test (void)
/* 32-bit Thumb-2 instructions. */
{
- insn_decode_record arm_record;
+ arm_insn_decode_record arm_record;
- memset (&arm_record, 0, sizeof (insn_decode_record));
+ memset (&arm_record, 0, sizeof (arm_insn_decode_record));
arm_record.gdbarch = gdbarch;
static const uint16_t insns[] = {
@@ -14315,7 +14316,7 @@ arm_analyze_prologue_test ()
/* Cleans up local record registers and memory allocations. */
static void
-deallocate_reg_mem (insn_decode_record *record)
+deallocate_reg_mem (arm_insn_decode_record *record)
{
xfree (record->arm_regs);
xfree (record->arm_mems);
@@ -14337,9 +14338,9 @@ arm_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
ULONGEST u_regval = 0;
- insn_decode_record arm_record;
+ arm_insn_decode_record arm_record;
- memset (&arm_record, 0, sizeof (insn_decode_record));
+ memset (&arm_record, 0, sizeof (arm_insn_decode_record));
arm_record.regcache = regcache;
arm_record.this_addr = insn_addr;
arm_record.gdbarch = gdbarch;
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 13/14] ODR warnings for "struct coff_symbol"
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (11 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 12/14] ODR warnings for "struct insn_decode_record_t" Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-05-18 18:00 ` [PATCH 14/14] ODR warning for "main" Tom Tromey
2022-06-02 15:28 ` [PATCH 00/14] More ODR fixes Tom Tromey
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"struct coff_symbol" is defined in multiple .c files, causing ODR
warnings. This patch renames just the xcoffread.c type.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/xcoffread.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 250bd9f4a94..e520d7ad40b 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -86,7 +86,7 @@ static enum language psymtab_language = language_unknown;
/* Simplified internal version of coff symbol table information. */
-struct coff_symbol
+struct xcoff_symbol
{
char *c_name;
int c_symnum; /* Symbol number of this entry. */
@@ -99,7 +99,7 @@ struct coff_symbol
/* Last function's saved coff symbol `cs'. */
-static struct coff_symbol fcn_cs_saved;
+static struct xcoff_symbol fcn_cs_saved;
static bfd *symfile_bfd;
@@ -208,7 +208,7 @@ static void scan_xcoff_symtab (minimal_symbol_reader &,
static const char *xcoff_next_symbol_text (struct objfile *);
-static void record_include_begin (struct coff_symbol *);
+static void record_include_begin (struct xcoff_symbol *);
static void
enter_line_range (struct subfile *, unsigned, unsigned,
@@ -230,7 +230,7 @@ static int read_symbol_lineno (int);
static CORE_ADDR read_symbol_nvalue (int);
-static struct symbol *process_xcoff_symbol (struct coff_symbol *,
+static struct symbol *process_xcoff_symbol (struct xcoff_symbol *,
struct objfile *);
static void read_xcoff_symtab (struct objfile *, legacy_psymtab *);
@@ -239,7 +239,7 @@ static void read_xcoff_symtab (struct objfile *, legacy_psymtab *);
static void add_stab_to_list (char *, struct pending_stabs **);
#endif
-static void record_include_end (struct coff_symbol *);
+static void record_include_end (struct xcoff_symbol *);
static void process_linenos (CORE_ADDR, CORE_ADDR);
\f
@@ -512,7 +512,7 @@ static int inclDepth; /* nested include depth */
static void allocate_include_entry (void);
static void
-record_include_begin (struct coff_symbol *cs)
+record_include_begin (struct xcoff_symbol *cs)
{
if (inclDepth)
{
@@ -533,7 +533,7 @@ record_include_begin (struct coff_symbol *cs)
}
static void
-record_include_end (struct coff_symbol *cs)
+record_include_end (struct xcoff_symbol *cs)
{
InclTable *pTbl;
@@ -931,7 +931,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst)
struct internal_syment symbol[1];
union internal_auxent main_aux;
- struct coff_symbol cs[1];
+ struct xcoff_symbol cs[1];
CORE_ADDR file_start_addr = 0;
CORE_ADDR file_end_addr = 0;
@@ -942,7 +942,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst)
CORE_ADDR fcn_start_addr = 0;
enum language pst_symtab_language;
- struct coff_symbol fcn_stab_saved = { 0 };
+ struct xcoff_symbol fcn_stab_saved = { 0 };
/* fcn_cs_saved is global because process_xcoff_symbol needs it. */
union internal_auxent fcn_aux_saved = main_aux;
@@ -1457,7 +1457,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst)
/* process one xcoff symbol. */
static struct symbol *
-process_xcoff_symbol (struct coff_symbol *cs, struct objfile *objfile)
+process_xcoff_symbol (struct xcoff_symbol *cs, struct objfile *objfile)
{
struct symbol onesymbol;
struct symbol *sym = &onesymbol;
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 14/14] ODR warning for "main"
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (12 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 13/14] ODR warnings for "struct coff_symbol" Tom Tromey
@ 2022-05-18 18:00 ` Tom Tromey
2022-06-02 15:28 ` [PATCH 00/14] More ODR fixes Tom Tromey
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-05-18 18:00 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
"main" is redeclared with a different type in maint.c. I think this
might have come from my first gdb patch, many many years ago. While I
wonder if this profiling code is actually useful at all any more, in
the meantime it's simple to fix the declaration.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
---
gdb/maint.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/maint.c b/gdb/maint.c
index 31b8fd8322e..289560957f2 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -799,7 +799,7 @@ mcleanup_wrapper (void)
}
EXTERN_C void monstartup (unsigned long, unsigned long);
-extern int main ();
+extern int main (int, char **);
static void
maintenance_set_profile_cmd (const char *args, int from_tty,
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 00/14] More ODR fixes
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
` (13 preceding siblings ...)
2022-05-18 18:00 ` [PATCH 14/14] ODR warning for "main" Tom Tromey
@ 2022-06-02 15:28 ` Tom Tromey
14 siblings, 0 replies; 16+ messages in thread
From: Tom Tromey @ 2022-06-02 15:28 UTC (permalink / raw)
To: Tom Tromey via Gdb-patches; +Cc: Tom Tromey
>>>>> "Tom" == Tom Tromey via Gdb-patches <gdb-patches@sourceware.org> writes:
Tom> I built gdb using LTO and looked at all the -Wodr warnings.
Tom> This is PR build/22395.
Tom> I didn't fix them all, but I did fix quite a few of them.
Tom> Regression tested on x86-64 Fedora 34.
I'm checking these in now.
Tom
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2022-06-02 15:28 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-18 18:00 [PATCH 00/14] More ODR fixes Tom Tromey
2022-05-18 18:00 ` [PATCH 01/14] Fix ODR warning in observable.h Tom Tromey
2022-05-18 18:00 ` [PATCH 02/14] ODR warnings for struct symloc Tom Tromey
2022-05-18 18:00 ` [PATCH 03/14] ODR warnings for struct nextfield Tom Tromey
2022-05-18 18:00 ` [PATCH 04/14] ODR warning for struct field_info Tom Tromey
2022-05-18 18:00 ` [PATCH 05/14] ODR warning for struct ext_link_map Tom Tromey
2022-05-18 18:00 ` [PATCH 06/14] ODR warning for "struct instruction_type" Tom Tromey
2022-05-18 18:00 ` [PATCH 07/14] ODR warning for "struct stack_item" Tom Tromey
2022-05-18 18:00 ` [PATCH 08/14] ODR warning for "struct find_targ_sec_arg" Tom Tromey
2022-05-18 18:00 ` [PATCH 09/14] ODR warning for "enum string_repr_result" Tom Tromey
2022-05-18 18:00 ` [PATCH 10/14] ODR warnings from overlay constants Tom Tromey
2022-05-18 18:00 ` [PATCH 11/14] ODR warnings for "struct insn_info" Tom Tromey
2022-05-18 18:00 ` [PATCH 12/14] ODR warnings for "struct insn_decode_record_t" Tom Tromey
2022-05-18 18:00 ` [PATCH 13/14] ODR warnings for "struct coff_symbol" Tom Tromey
2022-05-18 18:00 ` [PATCH 14/14] ODR warning for "main" Tom Tromey
2022-06-02 15:28 ` [PATCH 00/14] More ODR fixes Tom Tromey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).