PR26479 UBSAN: tc-nios2.c:244 left shift cannot be represented
authorAlan Modra <amodra@gmail.com>
Mon, 31 Aug 2020 06:21:24 +0000 (15:51 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 31 Aug 2020 10:58:11 +0000 (20:28 +0930)
PR 26479
* config/tc-nios2.c (md_chars_to_number): Cast buf[i] before shifting.

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

index 3d696a9d75b51a58dd65584c6d3f03a08a7ebdef..3f615cf8304bb3364c78019ffcd887715f958b61 100644 (file)
@@ -1,3 +1,8 @@
+2020-08-31  Alan Modra  <amodra@gmail.com>
+
+       PR 26479
+       * config/tc-nios2.c (md_chars_to_number): Cast buf[i] before shifting.
+
 2020-08-31  Alan Modra  <amodra@gmail.com>
 
        PR 26472
index 467e2c9500333c5cbd48065ebf4cbc0a1135c9a0..16695c5c06312ec4d5f6f4c206f643471a26d7d0 100644 (file)
@@ -238,10 +238,10 @@ md_chars_to_number (char *buf, int n)
   val = 0;
   if (target_big_endian)
     for (i = 0; i < n; ++i)
-      val = val | ((buf[i] & 0xff) << 8 * (n - (i + 1)));
+      val = val | ((valueT) (buf[i] & 0xff) << 8 * (n - (i + 1)));
   else
     for (i = 0; i < n; ++i)
-      val = val | ((buf[i] & 0xff) << 8 * i);
+      val = val | ((valueT) (buf[i] & 0xff) << 8 * i);
   return val;
 }