[ELF][MIPS] Reorganize isMipsPIC routine. NFC

llvm-svn: 331555
This commit is contained in:
Simon Atanasyan 2018-05-04 20:48:53 +00:00
parent 86a1219d30
commit b6211d9084
1 changed files with 10 additions and 7 deletions

View File

@ -658,18 +658,21 @@ template <class ELFT> bool MIPS<ELFT>::usesOnlyLowPageBits(RelType Type) const {
// Return true if the symbol is a PIC function.
template <class ELFT> bool elf::isMipsPIC(const Defined *Sym) {
typedef typename ELFT::Ehdr Elf_Ehdr;
if (!Sym->Section || !Sym->isFunc())
if (!Sym->isFunc())
return false;
auto *Sec = cast<InputSectionBase>(Sym->Section);
ObjFile<ELFT> *File = Sec->template getFile<ELFT>();
if (Sym->StOther & STO_MIPS_PIC)
return true;
if (!Sym->Section)
return false;
ObjFile<ELFT> *File =
cast<InputSectionBase>(Sym->Section)->template getFile<ELFT>();
if (!File)
return false;
const Elf_Ehdr *Hdr = File->getObj().getHeader();
return (Sym->StOther & STO_MIPS_MIPS16) == STO_MIPS_PIC ||
(Hdr->e_flags & EF_MIPS_PIC);
return File->getObj().getHeader()->e_flags & EF_MIPS_PIC;
}
template <class ELFT> TargetInfo *elf::getMipsTargetInfo() {