forked from Imagelibrary/binutils-gdb
ubsan: crx-dis.c:571 left shift of negative value
* crx-dis.c: Whitespace. (print_arg): Use unsigned type for longdisp and mask variables, and for left shift constant.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2020-09-02 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* crx-dis.c: Whitespace.
|
||||
(print_arg): Use unsigned type for longdisp and mask variables,
|
||||
and for left shift constant.
|
||||
|
||||
2020-09-02 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* cgen-ibld.in (insert_normal, extract_normal): Use 1UL in left shift.
|
||||
|
||||
@@ -481,7 +481,7 @@ make_argument (argument * a, int start_bits)
|
||||
static void
|
||||
print_arg (argument *a, bfd_vma memaddr, struct disassemble_info *info)
|
||||
{
|
||||
LONGLONG longdisp, mask;
|
||||
ULONGLONG longdisp, mask;
|
||||
int sign_flag = 0;
|
||||
int relative = 0;
|
||||
bfd_vma number;
|
||||
@@ -576,8 +576,8 @@ print_arg (argument *a, bfd_vma memaddr, struct disassemble_info *info)
|
||||
case 16:
|
||||
case 24:
|
||||
case 32:
|
||||
mask = ((LONGLONG)1 << a->size) - 1;
|
||||
if (longdisp & ((LONGLONG)1 << a->size))
|
||||
mask = ((LONGLONG) 1 << a->size) - 1;
|
||||
if (longdisp & ((ULONGLONG) 1 << a->size))
|
||||
{
|
||||
sign_flag = 1;
|
||||
longdisp = ~(longdisp) + 1;
|
||||
|
||||
Reference in New Issue
Block a user