Assorted warning fixes
authorAlan Modra <amodra@gmail.com>
Thu, 31 Jan 2019 04:08:45 +0000 (14:38 +1030)
committerAlan Modra <amodra@gmail.com>
Thu, 31 Jan 2019 04:15:01 +0000 (14:45 +1030)
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.

gas/ChangeLog
gas/config/tc-alpha.c
gas/config/tc-arm.c
gas/config/tc-csky.c

index 5e2d81349102d8fc7c10455ae8bc71e678fa0111..e6c63d102f92af81326bb3679f4b66576dab8afe 100644 (file)
@@ -1,3 +1,10 @@
+2019-01-31  Alan Modra  <amodra@gmail.com>
+
+       * 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.
+
 2019-01-28  Max Filippov  <jcmvbkbc@gmail.com>
 
        * config/tc-xtensa.c (md_apply_fix): Mark fixups for constant
index 606f201a1eddc413e6571dd0ba0bec890bf8e5d5..7f8003615740ee56b838422eee4e2fb7353bbb45 100644 (file)
@@ -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)
index da5dd25fcf2807b8e173e923331026f5dd82cb9b..81b5ceedcc9dba5a8d0309731f03108e3853d3d8 100644 (file)
@@ -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.  */
index 550de100b325fb947df3388b876e2f648110ddef..75ced2ab0dfa9e12f54d72bc9097ae99a77473c4 100644 (file)
@@ -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)