diff options
author | Alan Modra <amodra@gmail.com> | 2019-12-11 13:32:25 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2019-12-11 21:14:19 +1030 |
commit | 13c9c48599ebc8ad2f3a1fb9f672740219cd3841 (patch) | |
tree | b304237be09f4f06469122cdcdda658299ebb1ba /bfd/elf32-rx.c | |
parent | 09c78487342254de6a4498f8b3aa1f3f1d508898 (diff) | |
download | gdb-13c9c48599ebc8ad2f3a1fb9f672740219cd3841.zip gdb-13c9c48599ebc8ad2f3a1fb9f672740219cd3841.tar.gz gdb-13c9c48599ebc8ad2f3a1fb9f672740219cd3841.tar.bz2 |
bfd signed overflow fixes
Aimed at quietening ubsan.
include/
* opcode/mmix.h (PUSHGO_INSN_BYTE): Make unsigned.
(GO_INSN_BYTE, SETL_INSN_BYTE, INCML_INSN_BYTE, INCMH_INSN_BYTE),
(INCH_INSN_BYTE, SWYM_INSN_BYTE, JMP_INSN_BYTE): Likewise.
bfd/
* elf32-rx.c (elf32_rx_relax_section): Avoid signed overflow.
* libaout.h (N_SET_INFO, N_SET_FLAGS): Likewise.
* netbsd.h (write_object_contents): Likewise.
* elf32-arm.c (bfd_elf32_arm_vfp11_erratum_scan): Likewise.
* libhppa.h (HPPA_R_CONSTANT): Don't signed extend with shifts.
(stm32l4xx_create_replacing_stub_vldm): Don't truncate high bits
with shifts.
* elf32-nds32.h (R_NDS32_RELAX_ENTRY_DISABLE_RELAX_FLAG): Define
using 1u shifted left. Ditto for other macros.
* mmo.c (LOP): Make unsigned.
Diffstat (limited to 'bfd/elf32-rx.c')
-rw-r--r-- | bfd/elf32-rx.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/bfd/elf32-rx.c b/bfd/elf32-rx.c index a1a5ce1..1b7b35b 100644 --- a/bfd/elf32-rx.c +++ b/bfd/elf32-rx.c @@ -2932,9 +2932,9 @@ elf32_rx_relax_section (bfd * abfd, break; case 0: #if RX_OPCODE_BIG_ENDIAN - imm_val = (ip[0] << 24) | (ip[1] << 16) | (ip[2] << 8) | ip[3]; + imm_val = ((unsigned) ip[0] << 24) | (ip[1] << 16) | (ip[2] << 8) | ip[3]; #else - imm_val = (ip[3] << 24) | (ip[2] << 16) | (ip[1] << 8) | ip[0]; + imm_val = ((unsigned) ip[3] << 24) | (ip[2] << 16) | (ip[1] << 8) | ip[0]; #endif break; } |