ubsan: tc-sparc.c:1146 left shift cannot be represented

* config/tc-sparc.c (in_signed_range): Use an unsigned type for
	sign mask.
This commit is contained in:
Alan Modra 2020-09-02 10:24:31 +09:30
parent 1929210d46
commit 6228e2790a
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2020-09-02 Alan Modra <amodra@gmail.com>
* config/tc-sparc.c (in_signed_range): Use an unsigned type for
sign mask.
2020-09-02 Alan Modra <amodra@gmail.com>
* config/tc-nios2.c (md_apply_fix): Avoid too large shift.

View File

@ -1143,7 +1143,7 @@ in_signed_range (bfd_signed_vma val, bfd_signed_vma max)
0xffffffff is always considered -1 on sparc32. */
if (sparc_arch_size == 32)
{
bfd_signed_vma sign = (bfd_signed_vma) 1 << 31;
bfd_vma sign = (bfd_vma) 1 << 31;
val = ((val & U0xffffffff) ^ sign) - sign;
}
if (val > max)