PR26509 UBSAN: tc-z80.c:3656 shift exponent is too large
authorAlan Modra <amodra@gmail.com>
Sun, 30 Aug 2020 22:43:19 +0000 (08:13 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 31 Aug 2020 10:58:09 +0000 (20:28 +0930)
PR 26509
* config/tc-z80.c (is_overflow): Use 1UL in mask shift expression.

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

index 757a3118c6e8e5692b40499a1c5074712fa5ef6a..16e425b371c0d0d54333bbc85bc653f925c836a4 100644 (file)
@@ -1,3 +1,8 @@
+2020-08-31  Alan Modra  <amodra@gmail.com>
+
+       PR 26509
+       * config/tc-z80.c (is_overflow): Use 1UL in mask shift expression.
+
 2020-08-30  Alan Modra  <amodra@gmail.com>
 
        * config/tc-tic4x.c (tic4x_gen_to_words): Rewrite mantissa
index 237425da3544b613f23d3fdd7c06ca66cefaf9c0..45fcd6fbf74b5fb86e238401cfbe79c18e301407 100644 (file)
@@ -3653,7 +3653,7 @@ md_assemble (char *str)
 static int
 is_overflow (long value, unsigned bitsize)
 {
-  long fieldmask = (1 << bitsize) - 1;
+  long fieldmask = (1UL << bitsize) - 1;
   long signmask = ~fieldmask;
   long a = value & fieldmask;
   long ss = a & signmask;