public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* PR26476, PR26477 UBSAN: elfxx-mips.c:2695,5370 cannot be represented
@ 2020-08-31 10:50 Alan Modra
  0 siblings, 0 replies; only message in thread
From: Alan Modra @ 2020-08-31 10:50 UTC (permalink / raw)
  To: binutils

	PR 26476
	PR 26477
	* elfxx-mips.c (CRINFO_CTYPE, CRINFO_RTYPE, CRINFO_DIST2TO),
	(CRINFO_RELVADDR): Make unsigned.
	(mips_elf_nullify_got_load): Use unsigned constant when shifting
	into sign bit.

diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index bc0843508e..c0970fb85d 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -698,13 +698,13 @@ typedef struct
 
 /* These are the constants used to swap the bitfields in a crinfo.  */
 
-#define CRINFO_CTYPE (0x1)
+#define CRINFO_CTYPE (0x1U)
 #define CRINFO_CTYPE_SH (31)
-#define CRINFO_RTYPE (0xf)
+#define CRINFO_RTYPE (0xfU)
 #define CRINFO_RTYPE_SH (27)
-#define CRINFO_DIST2TO (0xff)
+#define CRINFO_DIST2TO (0xffU)
 #define CRINFO_DIST2TO_SH (19)
-#define CRINFO_RELVADDR (0x7ffff)
+#define CRINFO_RELVADDR (0x7ffffU)
 #define CRINFO_RELVADDR_SH (0)
 
 /* A compact relocation info has long (3 words) or short (2 words)
@@ -5367,7 +5367,7 @@ mips_elf_nullify_got_load (bfd *input_bfd, bfd_byte *contents,
   if (mips16_reloc_p (r_type)
       && (((x >> 22) & 0x3ff) == 0x3d3				/* LW */
 	  || ((x >> 22) & 0x3ff) == 0x3c7))			/* LD */
-    x = (0x3cd << 22) | (x & (7 << 16)) << 3;			/* LI */
+    x = (0x3cdU << 22) | (x & (7 << 16)) << 3;			/* LI */
   else if (micromips_reloc_p (r_type)
 	   && ((x >> 26) & 0x37) == 0x37)			/* LW/LD */
     x = (0xc << 26) | (x & (0x1f << 21));			/* ADDIU */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-08-31 10:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-31 10:50 PR26476, PR26477 UBSAN: elfxx-mips.c:2695,5370 cannot be represented Alan Modra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).