forked from OSchip/llvm-project
Define SymbolBody::getSize instead of getSymSize(SymbolBody&). NFC.
llvm-svn: 259613
This commit is contained in:
parent
a8d480d9d5
commit
512c61df1c
|
@ -129,14 +129,6 @@ InputSectionBase<ELFT>::findMipsPairedReloc(uint8_t *Buf, uint32_t SymIndex,
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
template <class ELFT>
|
||||
static typename llvm::object::ELFFile<ELFT>::uintX_t
|
||||
getSymSize(SymbolBody &Body) {
|
||||
if (auto *SS = dyn_cast<DefinedElf<ELFT>>(&Body))
|
||||
return SS->Sym.st_size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <class ELFT>
|
||||
template <bool isRela>
|
||||
void InputSectionBase<ELFT>::relocate(uint8_t *Buf, uint8_t *BufEnd,
|
||||
|
@ -243,7 +235,7 @@ void InputSectionBase<ELFT>::relocate(uint8_t *Buf, uint8_t *BufEnd,
|
|||
else if (Type == R_MIPS_LO16 && Body == Config->MipsGpDisp)
|
||||
SymVA = getMipsGpAddr<ELFT>() - AddrLoc + 4;
|
||||
}
|
||||
uintX_t Size = getSymSize<ELFT>(*Body);
|
||||
uintX_t Size = Body->getSize<ELFT>();
|
||||
Target->relocateOne(BufLoc, BufEnd, Type, AddrLoc, SymVA + A, Size + A,
|
||||
findMipsPairedReloc(Buf, SymIndex, Type, NextRelocs));
|
||||
}
|
||||
|
|
|
@ -89,6 +89,13 @@ typename ELFFile<ELFT>::uintX_t SymbolBody::getPltVA() const {
|
|||
PltIndex * Target->PltEntrySize;
|
||||
}
|
||||
|
||||
template <class ELFT>
|
||||
typename ELFFile<ELFT>::uintX_t SymbolBody::getSize() const {
|
||||
if (auto *B = dyn_cast<DefinedElf<ELFT>>(this))
|
||||
return B->Sym.st_size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint8_t getMinVisibility(uint8_t VA, uint8_t VB) {
|
||||
if (VA == STV_DEFAULT)
|
||||
return VB;
|
||||
|
@ -252,6 +259,11 @@ template uint32_t SymbolBody::template getPltVA<ELF32BE>() const;
|
|||
template uint64_t SymbolBody::template getPltVA<ELF64LE>() const;
|
||||
template uint64_t SymbolBody::template getPltVA<ELF64BE>() const;
|
||||
|
||||
template uint32_t SymbolBody::template getSize<ELF32LE>() const;
|
||||
template uint32_t SymbolBody::template getSize<ELF32BE>() const;
|
||||
template uint64_t SymbolBody::template getSize<ELF64LE>() const;
|
||||
template uint64_t SymbolBody::template getSize<ELF64BE>() const;
|
||||
|
||||
template int SymbolBody::compare<ELF32LE>(SymbolBody *Other);
|
||||
template int SymbolBody::compare<ELF32BE>(SymbolBody *Other);
|
||||
template int SymbolBody::compare<ELF64LE>(SymbolBody *Other);
|
||||
|
|
|
@ -110,6 +110,8 @@ public:
|
|||
typename llvm::object::ELFFile<ELFT>::uintX_t getGotPltVA() const;
|
||||
template <class ELFT>
|
||||
typename llvm::object::ELFFile<ELFT>::uintX_t getPltVA() const;
|
||||
template <class ELFT>
|
||||
typename llvm::object::ELFFile<ELFT>::uintX_t getSize() const;
|
||||
|
||||
// A SymbolBody has a backreference to a Symbol. Originally they are
|
||||
// doubly-linked. A backreference will never change. But the pointer
|
||||
|
|
Loading…
Reference in New Issue