ubsan: tc-sparc.c:1146 left shift cannot be represented

Alan Modra amodra@gmail.com
Wed Sep 2 08:42:54 GMT 2020


	* config/tc-sparc.c (in_signed_range): Use an unsigned type for
	sign mask.

diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index d48112ec0a..d728d26531 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -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)
-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list