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:
parent
ae3e98b418
commit
3c5097eae4
2 changed files with 80 additions and 74 deletions
|
@ -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;
|
||||
|
@ -577,7 +577,7 @@ print_arg (argument *a, bfd_vma memaddr, struct disassemble_info *info)
|
|||
case 24:
|
||||
case 32:
|
||||
mask = ((LONGLONG) 1 << a->size) - 1;
|
||||
if (longdisp & ((LONGLONG)1 << a->size))
|
||||
if (longdisp & ((ULONGLONG) 1 << a->size))
|
||||
{
|
||||
sign_flag = 1;
|
||||
longdisp = ~(longdisp) + 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue