Assorted warning fixes

Message ID 20190131042040.GB24250@bubble.grove.modra.org
State New
Headers show
Series
  • Assorted warning fixes
Related show

Commit Message

Alan Modra Jan. 31, 2019, 4:20 a.m.
gcc-9 flagged warnings at the places I'm patching here, all real bugs.

	* config/tc-alpha.c (md_apply_fix): Correct range checks for
	BFD_RELOC_ALPHA_NOP, BFD_RELOC_ALPHA_LDA, BFD_RELOC_ALPHA_BSR.
	* config/tc-arm.c (md_apply_fix): Use llabs rather than abs.
	* config/tc-csky.c (get_macro_reg_vals): Pass s to csky_show_error.


-- 
Alan Modra
Australia Development Lab, IBM

Patch

diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c
index 606f201a1e..7f80036157 100644
--- a/gas/config/tc-alpha.c
+++ b/gas/config/tc-alpha.c
@@ -5878,7 +5878,7 @@  md_apply_fix (fixS *fixP, valueT * valP, segT seg)
 	  return;
 	}
 
-      if ((abs (value) >> 2) & ~0xfffff)
+      if (value + (1u << 22) >= (1u << 23))
 	goto done;
       else
 	{
@@ -5897,7 +5897,7 @@  md_apply_fix (fixS *fixP, valueT * valP, segT seg)
 	  return;
 	}
 
-      if ((abs (value)) & ~0x7fff)
+      if (value + (1u << 15) >= (1u << 16))
 	goto done;
       else
 	{
@@ -5917,7 +5917,7 @@  md_apply_fix (fixS *fixP, valueT * valP, segT seg)
 	  return;
 	}
 
-      if ((abs (value) >> 2) & ~0xfffff)
+      if (value + (1u << 22) >= (1u << 23))
 	{
 	  /* Out of range.  */
 	  if (fixP->fx_r_type == BFD_RELOC_ALPHA_BOH)
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index da5dd25fcf..81b5ceedcc 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -24507,7 +24507,7 @@  md_apply_fix (fixS *	fixP,
        {
 	 bfd_vma insn;
 	 bfd_vma encoded_addend;
-	 bfd_vma addend_abs = abs (value);
+	 bfd_vma addend_abs = llabs (value);
 
 	 /* Check that the absolute value of the addend can be
 	    expressed as an 8-bit constant plus a rotation.  */
@@ -24548,7 +24548,7 @@  md_apply_fix (fixS *	fixP,
       if (!seg->use_rela_p)
 	{
 	  bfd_vma insn;
-	  bfd_vma addend_abs = abs (value);
+	  bfd_vma addend_abs = llabs (value);
 
 	  /* Check that the absolute value of the addend can be
 	     encoded in 12 bits.  */
@@ -24587,7 +24587,7 @@  md_apply_fix (fixS *	fixP,
       if (!seg->use_rela_p)
 	{
 	  bfd_vma insn;
-	  bfd_vma addend_abs = abs (value);
+	  bfd_vma addend_abs = llabs (value);
 
 	  /* Check that the absolute value of the addend can be
 	     encoded in 8 bits.  */
@@ -24627,7 +24627,7 @@  md_apply_fix (fixS *	fixP,
       if (!seg->use_rela_p)
 	{
 	  bfd_vma insn;
-	  bfd_vma addend_abs = abs (value);
+	  bfd_vma addend_abs = llabs (value);
 
 	  /* Check that the absolute value of the addend is a multiple of
 	     four and, when divided by four, fits in 8 bits.  */
diff --git a/gas/config/tc-csky.c b/gas/config/tc-csky.c
index 550de100b3..75ced2ab0d 100644
--- a/gas/config/tc-csky.c
+++ b/gas/config/tc-csky.c
@@ -5494,7 +5494,7 @@  get_macro_reg_vals (int *reg1, int *reg2, int *reg3)
   s += nlen;
   if (*s != '\0')
     {
-      csky_show_error (ERROR_BAD_END, 0, NULL, NULL);
+      csky_show_error (ERROR_BAD_END, 0, s, NULL);
       return FALSE;
     }
   if (*reg1 == -1 || *reg2 == -1 || *reg3 == -1)