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.
This commit is contained in:
Alan Modra
2019-12-11 13:32:25 +10:30
parent 09c7848734
commit 13c9c48599
10 changed files with 55 additions and 36 deletions

View File

@ -173,14 +173,14 @@ extern const struct mmix_spec_reg mmix_spec_regs[];
#define COND_INV_BIT 0x8
#define PRED_INV_BIT 0x10
#define PUSHGO_INSN_BYTE 0xbe
#define GO_INSN_BYTE 0x9e
#define SETL_INSN_BYTE 0xe3
#define INCML_INSN_BYTE 0xe6
#define INCMH_INSN_BYTE 0xe5
#define INCH_INSN_BYTE 0xe4
#define SWYM_INSN_BYTE 0xfd
#define JMP_INSN_BYTE 0xf0
#define PUSHGO_INSN_BYTE 0xbeu
#define GO_INSN_BYTE 0x9eu
#define SETL_INSN_BYTE 0xe3u
#define INCML_INSN_BYTE 0xe6u
#define INCMH_INSN_BYTE 0xe5u
#define INCH_INSN_BYTE 0xe4u
#define SWYM_INSN_BYTE 0xfdu
#define JMP_INSN_BYTE 0xf0u
/* We can have 256 - 32 (local registers) - 1 ($255 is not allocatable)
global registers. */