From 8a92faab92e359a860da6c69741acd1fac24dad6 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 16 Dec 2019 09:58:52 +1030 Subject: [PATCH] ubsan: nios2: left shift cannot be represented in type 'int' * nios2-dis.c (nios2_print_insn_arg): Avoid signed overflow --- opcodes/ChangeLog | 4 ++++ opcodes/nios2-dis.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 1e13b1f734..113fd09264 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 731860c409..d548adc608 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, ","); -- 2.34.1