[PATCH] D62994: [ELF] Delete R_PPC64_CALL_PLT from isRelExpr()

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 7 02:32:33 PDT 2019


MaskRay added a comment.

In D62994#1533651 <https://reviews.llvm.org/D62994#1533651>, @ruiu wrote:

> LGTM
>
> Do you think you can add a test?


I cannot. I think D46654 <https://reviews.llvm.org/D46654> could just add `R_PPC_CALL`, not `R_PPC_CALL_PLT`. `R_PPC64_CALL_PLT` is similar to `R_PLT_PC`. Since  `R_PLT_PC` is not in `isRelExpr()`, `R_PPC64_CALL_PLT` does not have to be in the list, either.

Before the control reaches `isRelExpr()`, `R_PPC64_CALL` has been precluded by:

static bool isStaticLinkTimeConstant(RelExpr E, RelType Type, const Symbol &Sym,

                                     InputSectionBase &S, uint64_t RelOff) {
  // These expressions always compute a constant
  if (oneof<R_DTPREL, R_GOTPLT, R_GOT_OFF, R_HEXAGON_GOT, R_TLSLD_GOT_OFF,
            R_MIPS_GOT_LOCAL_PAGE, R_MIPS_GOTREL, R_MIPS_GOT_OFF,
            R_MIPS_GOT_OFF32, R_MIPS_GOT_GP_PC, R_MIPS_TLSGD,
            R_AARCH64_GOT_PAGE_PC, R_GOT_PC, R_GOTONLY_PC, R_GOTPLTONLY_PC,
            R_PLT_PC, R_TLSGD_GOT, R_TLSGD_GOTPLT, R_TLSGD_PC, R_PPC32_PLTREL,
            R_PPC64_CALL_PLT, R_PPC64_RELAX_TOC, R_TLSDESC_CALL, R_TLSDESC_PC,
            R_AARCH64_TLSDESC_PAGE, R_HINT, R_TLSLD_HINT, R_TLSIE_HINT>(E))
    return true;


Repository:
  rLLD LLVM Linker

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62994/new/

https://reviews.llvm.org/D62994





More information about the llvm-commits mailing list