]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Use stdint types in coff internal_auxent
authorAlan Modra <amodra@gmail.com>
Sat, 25 Mar 2023 10:45:46 +0000 (21:15 +1030)
committerAlan Modra <amodra@gmail.com>
Mon, 27 Mar 2023 11:28:46 +0000 (21:58 +1030)
commita2c7ca15a5609ea230771fc418511a3b8db16bd1
tree3e5b9c33b8f90ce7b8afd8621ca7cdf5ea35caff
parent3bb1480e2a85de6850863d245e7b6da03a3887f7
Use stdint types in coff internal_auxent

long is a poor choice of type to store 32-bit values read from
objects files by H_GET_32.  H_GET_32 doesn't sign extend so tests like
that in gdb/coffread.c for "negative" values won't work if long is
larger than 32 bits.  If long is 32-bit then code needs to be careful
to not accidentally index negative array elements.  (I'd rather see a
segfault on an unmapped 4G array index than silently reading bogus
data.)  long is also a poor choice for x_sect.s_scnlen, which might
have 64-bit values.  It's better to use unsigned exact width types to
avoid surprises.

I decided to change the field names too, which makes most of this
patch simply renaming.  Besides that there are a few places where
casts are no longer needed, and where printf format strings or tests
need adjusting.

include/
* coff/internal.h (union internal_auxent): Use unsigned stdint
types.  Rename l fields to u32 and u64 as appropriate.
bfd/
* coff-bfd.c,
* coff-rs6000.c,
* coff64-rs6000.c,
* coffcode.h,
* coffgen.c,
* cofflink.c,
* coffswap.h,
* peXXigen.c,
* xcofflink.c: Adjust to suit internal_auxent changes.
binutils/
* rdcoff.c: Adjust to suit internal_auxent changes.
gas/
* config/obj-coff.h,
* config/tc-ppc.c: Adjust to suit internal_auxent changes.
gdb/
* coffread.c,
* xcoffread.c: Adjust to suit internal_auxent changes.
ld/
* pe-dll.c: Adjust to suit internal_auxent changes.
16 files changed:
bfd/coff-bfd.c
bfd/coff-rs6000.c
bfd/coff64-rs6000.c
bfd/coffcode.h
bfd/coffgen.c
bfd/cofflink.c
bfd/coffswap.h
bfd/peXXigen.c
bfd/xcofflink.c
binutils/rdcoff.c
gas/config/obj-coff.h
gas/config/tc-ppc.c
gdb/coffread.c
gdb/xcoffread.c
include/coff/internal.h
ld/pe-dll.c