mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2026-08-27 00:26:02 -04:00
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. |
||
|---|---|---|
| .. | ||
| aarch64.h | ||
| alpha.h | ||
| arm.h | ||
| ChangeLog-0415 | ||
| ChangeLog-9103 | ||
| ecoff.h | ||
| external.h | ||
| i386.h | ||
| ia64.h | ||
| internal.h | ||
| loongarch64.h | ||
| mcore.h | ||
| mips.h | ||
| msdos.h | ||
| pe.h | ||
| rs6k64.h | ||
| rs6000.h | ||
| sh.h | ||
| sym.h | ||
| symconst.h | ||
| ti.h | ||
| tic4x.h | ||
| tic30.h | ||
| tic54x.h | ||
| x86_64.h | ||
| xcoff.h | ||
| z8k.h | ||
| z80.h | ||