From: Alan Modra Date: Wed, 2 Sep 2020 00:33:14 +0000 (+0930) Subject: ubsan elfnn-aarch64.c:7142 shift exponent 32 is too large X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=26009aa7639bb4103291bb79743dc4e51175f80a;p=binutils-gdb.git ubsan elfnn-aarch64.c:7142 shift exponent 32 is too large * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Correct type of constant shifted left. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d45c0e8bee2..156bb7abf73 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2020-09-02 Alan Modra + + * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Correct type + of constant shifted left. + 2020-09-02 Alan Modra * elf32-pru.c (pru_elf32_do_ldi32_relocate): Use an unsigned diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 302d8dd7e66..5b4c189b593 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -7139,7 +7139,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd, Try to catch this situation here and provide a more helpful error message to the user. */ - if (addend & ((1UL << howto->rightshift) - 1) + if (addend & (((bfd_vma) 1 << howto->rightshift) - 1) /* FIXME: Are we testing all of the appropriate reloc types here ? */ && (real_r_type == BFD_RELOC_AARCH64_LD_LO19_PCREL