ubsan: nios2: left shift cannot be represented in type 'int'
authorAlan Modra <amodra@gmail.com>
Sun, 15 Dec 2019 23:28:52 +0000 (09:58 +1030)
committerAlan Modra <amodra@gmail.com>
Mon, 16 Dec 2019 07:05:13 +0000 (17:35 +1030)
* nios2-dis.c (nios2_print_insn_arg): Avoid signed overflow

opcodes/ChangeLog
opcodes/nios2-dis.c

index 1e13b1f7346d29b2f7e2f265584598b36c2b6dd6..113fd09264a4fbf2dd4f3b2a2b88fafa771f8ff2 100644 (file)
@@ -1,3 +1,7 @@
+2019-12-16  Alan Modra  <amodra@gmail.com>
+
+       * nios2-dis.c (nios2_print_insn_arg): Avoid signed overflow
+
 2019-12-16  Alan Modra  <amodra@gmail.com>
 
        * xstormy16-ibld.c: Regenerate.
index 731860c40986881ac64be6a43333cbddd195ea50..d548adc608295709b20a958c45f84d4adeebd0f8 100644 (file)
@@ -858,7 +858,7 @@ nios2_print_insn_arg (const char *argptr,
                if (i & (1 << 10))
                  reglist |= (1 << 28);
                if (i & (1 << 11))
-                 reglist |= (1 << 31);
+                 reglist |= (1u << 31);
              }
            else
              reglist = i << 2;
@@ -887,7 +887,7 @@ nios2_print_insn_arg (const char *argptr,
        for (k = (dir == 1 ? 0 : 31);
             (dir == 1 && k < 32) || (dir == -1 && k >= 0);
             k += dir)
-         if (reglist & (1 << k))
+         if (reglist & (1u << k))
            {
              if (t)
                (*info->fprintf_func) (info->stream, ",");