ubsan errors when 32-bit bfd
[deliverable/binutils-gdb.git] / gas / config / tc-z80.c
index 47d1405c2b629c1446253658345a4969f56a40ad..303296b7dab0e7609d27010a96a1b23ac6bed2a8 100644 (file)
@@ -3703,14 +3703,14 @@ md_assemble (char *str)
 static int
 signed_overflow (signed long value, unsigned bitsize)
 {
-  signed long max = (signed long)(1UL << (bitsize-1));
-  return value < -max || value >= max;
+  signed long max = (signed long) ((1UL << (bitsize - 1)) - 1);
+  return value < -max - 1 || value > max;
 }
 
 static int
 unsigned_overflow (unsigned long value, unsigned bitsize)
 {
-  return (value >> bitsize) != 0;
+  return value >> (bitsize - 1) >> 1 != 0;
 }
 
 static int
This page took 0.034092 seconds and 4 git commands to generate.