diff options
Diffstat (limited to 'lld/ELF/Symbols.cpp')
-rw-r--r-- | lld/ELF/Symbols.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp index 30b086f68db..dec844277c1 100644 --- a/lld/ELF/Symbols.cpp +++ b/lld/ELF/Symbols.cpp @@ -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); |