summaryrefslogtreecommitdiff
path: root/opcodes/v850-dis.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-12-26 15:56:25 +1030
committerAlan Modra <amodra@gmail.com>2019-12-26 17:49:03 +1030
commit6c2ca6c25dbefd7192dac52e7fd156ae0f299f1f (patch)
tree1b260d12aa91ad05906469919e1bef7e637ba1f2 /opcodes/v850-dis.c
parente5af216040aba59952c99d6479ba5279cee6825d (diff)
downloadbinutils-gdb-6c2ca6c25dbefd7192dac52e7fd156ae0f299f1f.tar.gz
ubsan: v850: left shift cannot be represented in type 'int'
Another 1 << 31 complaint. * v850-dis.c (disassemble): Avoid signed overflow. Don't use long vars when unsigned int will do.
Diffstat (limited to 'opcodes/v850-dis.c')
-rw-r--r--opcodes/v850-dis.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/opcodes/v850-dis.c b/opcodes/v850-dis.c
index 45e6c65d83a..df2c2a5d39b 100644
--- a/opcodes/v850-dis.c
+++ b/opcodes/v850-dis.c
@@ -499,7 +499,7 @@ disassemble (bfd_vma memaddr,
0, 0, 0, 0, 0, 31, 29, 28, 23, 22, 21, 20, 27, 26, 25, 24 };
int *regs;
int i;
- unsigned long int mask = 0;
+ unsigned int mask = 0;
int pc = 0;
switch (operand->shift)
@@ -514,12 +514,12 @@ disassemble (bfd_vma memaddr,
for (i = 0; i < 32; i++)
{
- if (value & (1 << i))
+ if (value & (1u << i))
{
switch (regs[ i ])
{
default:
- mask |= (1 << regs[ i ]);
+ mask |= (1u << regs[ i ]);
break;
case 0:
/* xgettext:c-format */
@@ -543,10 +543,10 @@ disassemble (bfd_vma memaddr,
int shown_one = 0;
for (bit = 0; bit < 32; bit++)
- if (mask & (1 << bit))
+ if (mask & (1u << bit))
{
- unsigned long int first = bit;
- unsigned long int last;
+ unsigned int first = bit;
+ unsigned int last;
if (shown_one)
info->fprintf_func (info->stream, ", ");
@@ -556,7 +556,7 @@ disassemble (bfd_vma memaddr,
info->fprintf_func (info->stream, "%s", get_v850_reg_name (first));
for (bit++; bit < 32; bit++)
- if ((mask & (1 << bit)) == 0)
+ if ((mask & (1u << bit)) == 0)
break;
last = bit;