[lld] r249627 - [ELF2/AArch64] _ABS* relocations don't read contents. Fix it.

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 7 18:02:47 PDT 2015


Thanks. To be clear, I think that nothing using elf_rala should read the
location.
On Oct 7, 2015 6:11 PM, "Davide Italiano via llvm-commits" <
llvm-commits at lists.llvm.org> wrote:

> Author: davide
> Date: Wed Oct  7 17:10:02 2015
> New Revision: 249627
>
> URL: http://llvm.org/viewvc/llvm-project?rev=249627&view=rev
> Log:
> [ELF2/AArch64] _ABS* relocations don't read contents. Fix it.
>
> Spotted by: Rafael Espindola.
>
> Modified:
>     lld/trunk/ELF/Target.cpp
>
> Modified: lld/trunk/ELF/Target.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Target.cpp?rev=249627&r1=249626&r2=249627&view=diff
>
> ==============================================================================
> --- lld/trunk/ELF/Target.cpp (original)
> +++ lld/trunk/ELF/Target.cpp Wed Oct  7 17:10:02 2015
> @@ -299,16 +299,16 @@ void AArch64TargetInfo::relocateOne(uint
>    case R_AARCH64_ABS16:
>      if (!isInt<16>(S + A))
>        error("Relocation R_AARCH64_ABS16 out of range");
> -    or16le(L, S + A);
> +    write16le(L, S + A);
>      break;
>    case R_AARCH64_ABS32:
>      if (!isInt<32>(S + A))
>        error("Relocation R_AARCH64_ABS32 out of range");
> -    or32le(L, S + A);
> +    write32le(L, S + A);
>      break;
>    case R_AARCH64_ABS64:
>      // No overflow check needed.
> -    or64le(L, S + A);
> +    write64le(L, S + A);
>      break;
>    case R_AARCH64_ADD_ABS_LO12_NC:
>      // No overflow check needed.
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151007/c32e30fe/attachment.html>


More information about the llvm-commits mailing list