diff options
author | Maciej W. Rozycki <macro@imgtec.com> | 2017-08-07 15:53:54 +0100 |
---|---|---|
committer | Maciej W. Rozycki <macro@imgtec.com> | 2017-08-07 15:53:54 +0100 |
commit | 0dba2a6c09c4010dfb2eb5abdd991208374947c4 (patch) | |
tree | 260d403ab4971933f926804ce310f6f2f4b13e02 /gdb/gdbarch.h | |
parent | 16eb6b2db49e6cf2fdca56efd37689fcc170cd37 (diff) | |
download | gdb-0dba2a6c09c4010dfb2eb5abdd991208374947c4.zip gdb-0dba2a6c09c4010dfb2eb5abdd991208374947c4.tar.gz gdb-0dba2a6c09c4010dfb2eb5abdd991208374947c4.tar.bz2 |
gdbarch: Use an anonymous union for target data in `gdbarch_info'
As an update to commit ede5f15146ae ("gdbarch.h: Change
gdbarch_info::tdep_info's type to void *") replace the definition of the
`tdep_info' member in `struct gdbarch_info' with an anonymous union,
comprising the original member, with its type reverted to `struct
gdbarch_tdep_info *', a `tdesc_data' member of a `struct tdesc_arch_data
*' type and an `id' member of an `int *' type. Remove now unnecessary
casts throughout use places then, making code easier to read an less
prone to errors, which may happen with casting.
gdb/
* gdbarch.sh (gdbarch_info): Replace the `tdep_info' member with
a union of `tdep_info', `tdesc_data' and `id'.
* aarch64-tdep.c (aarch64_gdbarch_init): Use `info.tdesc_data'
rather than `info.tdep_info'.
* amd64-linux-tdep.c (amd64_linux_init_abi): Likewise.
* i386-linux-tdep.c (i386_linux_init_abi): Likewise.
* i386-tdep.c (i386_gdbarch_init): Likewise.
* mips-linux-tdep.c (mips_linux_init_abi): Likewise.
* mips-tdep.c (mips_gdbarch_init): Likewise.
* nds32-tdep.c (nds32_gdbarch_init): Likewise.
* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
* ppc-linux-tdep.c (ppu2spu_sniffer): Use `info.id' rather than
`info.tdep_info'.
(ppc_linux_init_abi): Use `info.tdesc_data' rather than
`info.tdep_info'.
* sparc-tdep.c (sparc32_gdbarch_init): Likewise.
* spu-multiarch.c (spu_gdbarch): Use `info.id' rather than
`info.tdep_info'.
* spu-tdep.c (spu_gdbarch_init): Likewise.
* gdbarch.h: Regenerate.
Diffstat (limited to 'gdb/gdbarch.h')
-rw-r--r-- | gdb/gdbarch.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 1c95301..ceb867f 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -1647,7 +1647,21 @@ struct gdbarch_info bfd *abfd; /* Use default: NULL (ZERO). */ - void *tdep_info; + union + { + /* Architecture-specific information. The generic form for targets + that have extra requirements. */ + struct gdbarch_tdep_info *tdep_info; + + /* Architecture-specific target description data. Numerous targets + need only this, so give them an easy way to hold it. */ + struct tdesc_arch_data *tdesc_data; + + /* SPU file system ID. This is a single integer, so using the + generic form would only complicate code. Other targets may + reuse this member if suitable. */ + int *id; + }; /* Use default: GDB_OSABI_UNINITIALIZED (-1). */ enum gdb_osabi osabi; |