ubsan: tc-sparc.c:1146 left shift cannot be represented
authorAlan Modra <amodra@gmail.com>
Wed, 2 Sep 2020 00:54:31 +0000 (10:24 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 2 Sep 2020 07:00:43 +0000 (16:30 +0930)
* config/tc-sparc.c (in_signed_range): Use an unsigned type for
sign mask.

gas/ChangeLog
gas/config/tc-sparc.c

index b6bc2099cd7987c0de0f1f6b47e780e6cbbddb79..d6b58b485273992abc7bdbbfcd5f8ba70ced5776 100644 (file)
@@ -1,3 +1,8 @@
+2020-09-02  Alan Modra  <amodra@gmail.com>
+
+       * config/tc-sparc.c (in_signed_range): Use an unsigned type for
+       sign mask.
+
 2020-09-02  Alan Modra  <amodra@gmail.com>
 
        * config/tc-nios2.c (md_apply_fix): Avoid too large shift.
index d48112ec0af009aa94da8e9037ce6a193f0a92b5..d728d26531ffe9da519e4be80c4b5f2ef2e0f3bb 100644 (file)
@@ -1143,7 +1143,7 @@ in_signed_range (bfd_signed_vma val, bfd_signed_vma max)
      0xffffffff is always considered -1 on sparc32.  */
   if (sparc_arch_size == 32)
     {
-      bfd_signed_vma sign = (bfd_signed_vma) 1 << 31;
+      bfd_vma sign = (bfd_vma) 1 << 31;
       val = ((val & U0xffffffff) ^ sign) - sign;
     }
   if (val > max)