From: Alan Modra Date: Sun, 15 Dec 2019 23:28:52 +0000 (+1030) Subject: ubsan: nios2: left shift cannot be represented in type 'int' X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8a92faab92e359a860da6c69741acd1fac24dad6;p=binutils-gdb.git ubsan: nios2: left shift cannot be represented in type 'int' * nios2-dis.c (nios2_print_insn_arg): Avoid signed overflow --- diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 1e13b1f7346..113fd09264a 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2019-12-16 Alan Modra + + * nios2-dis.c (nios2_print_insn_arg): Avoid signed overflow + 2019-12-16 Alan Modra * xstormy16-ibld.c: Regenerate. diff --git a/opcodes/nios2-dis.c b/opcodes/nios2-dis.c index 731860c4098..d548adc6082 100644 --- a/opcodes/nios2-dis.c +++ b/opcodes/nios2-dis.c @@ -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, ",");