mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-07 13:39:43 +08:00
ubsan: i386-dis.c
i386-dis.c:12207 left shift of 128 by 24 places cannot be represented in type 'long int' i386-dis.c:12220 left shift of 128 by 24 places cannot be represented in type 'long int' i386-dis.c:12222 left shift of 1 by 31 places cannot be represented in type 'long int' i386-dis.c:12222 signed integer overflow: 162254319 - -2147483648 cannot be represented in type 'long int' * i386-dis.c (OP_E_memory): Don't cast to signed type when negating. (get32, get32s): Use unsigned types in shift expressions.
This commit is contained in:
parent
caf4537af5
commit
b4b393495f
@ -1,3 +1,9 @@
|
||||
2020-09-02 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* i386-dis.c (OP_E_memory): Don't cast to signed type when
|
||||
negating.
|
||||
(get32, get32s): Use unsigned types in shift expressions.
|
||||
|
||||
2020-09-02 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* csky-dis.c (print_insn_csky): Use unsigned type for "given".
|
||||
|
@ -11908,7 +11908,7 @@ OP_E_memory (int bytemode, int sizeflag)
|
||||
{
|
||||
*obufp++ = '-';
|
||||
*obufp = '\0';
|
||||
disp = - (bfd_signed_vma) disp;
|
||||
disp = -disp;
|
||||
}
|
||||
|
||||
if (havedisp)
|
||||
@ -11996,7 +11996,7 @@ OP_E_memory (int bytemode, int sizeflag)
|
||||
{
|
||||
*obufp++ = '-';
|
||||
*obufp = '\0';
|
||||
disp = - (bfd_signed_vma) disp;
|
||||
disp = -disp;
|
||||
}
|
||||
|
||||
print_displacement (scratchbuf, disp);
|
||||
@ -12198,28 +12198,28 @@ get64 (void)
|
||||
static bfd_signed_vma
|
||||
get32 (void)
|
||||
{
|
||||
bfd_signed_vma x = 0;
|
||||
bfd_vma x = 0;
|
||||
|
||||
FETCH_DATA (the_info, codep + 4);
|
||||
x = *codep++ & (bfd_signed_vma) 0xff;
|
||||
x |= (*codep++ & (bfd_signed_vma) 0xff) << 8;
|
||||
x |= (*codep++ & (bfd_signed_vma) 0xff) << 16;
|
||||
x |= (*codep++ & (bfd_signed_vma) 0xff) << 24;
|
||||
x = *codep++ & (bfd_vma) 0xff;
|
||||
x |= (*codep++ & (bfd_vma) 0xff) << 8;
|
||||
x |= (*codep++ & (bfd_vma) 0xff) << 16;
|
||||
x |= (*codep++ & (bfd_vma) 0xff) << 24;
|
||||
return x;
|
||||
}
|
||||
|
||||
static bfd_signed_vma
|
||||
get32s (void)
|
||||
{
|
||||
bfd_signed_vma x = 0;
|
||||
bfd_vma x = 0;
|
||||
|
||||
FETCH_DATA (the_info, codep + 4);
|
||||
x = *codep++ & (bfd_signed_vma) 0xff;
|
||||
x |= (*codep++ & (bfd_signed_vma) 0xff) << 8;
|
||||
x |= (*codep++ & (bfd_signed_vma) 0xff) << 16;
|
||||
x |= (*codep++ & (bfd_signed_vma) 0xff) << 24;
|
||||
x = *codep++ & (bfd_vma) 0xff;
|
||||
x |= (*codep++ & (bfd_vma) 0xff) << 8;
|
||||
x |= (*codep++ & (bfd_vma) 0xff) << 16;
|
||||
x |= (*codep++ & (bfd_vma) 0xff) << 24;
|
||||
|
||||
x = (x ^ ((bfd_signed_vma) 1 << 31)) - ((bfd_signed_vma) 1 << 31);
|
||||
x = (x ^ ((bfd_vma) 1 << 31)) - ((bfd_vma) 1 << 31);
|
||||
|
||||
return x;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user