LLVM 22.0.0git
ELFObjectFile< ELFT > Class Template Reference

#include "llvm/Object/ELFObjectFile.h"

Inheritance diagram for ELFObjectFile< ELFT >:
[legend]

Public Member Functions

SectionRef toSectionRef (const Elf_Shdr *Sec) const
ELFSymbolRef toSymbolRef (const Elf_Shdr *SymTable, unsigned SymbolNum) const
bool IsContentValid () const
 ELFObjectFile (ELFObjectFile< ELFT > &&Other)
const Elf_Rel * getRel (DataRefImpl Rel) const
const Elf_Rela * getRela (DataRefImpl Rela) const
Elf_Crel getCrel (DataRefImpl Crel) const
Expected< const Elf_Sym * > getSymbol (DataRefImpl Sym) const
const Elf_Shdr * getRelSection (DataRefImpl Rel) const
 Get the relocation section that contains Rel.
const Elf_Shdr * getSection (DataRefImpl Sec) const
basic_symbol_iterator symbol_begin () const override
basic_symbol_iterator symbol_end () const override
bool is64Bit () const override
elf_symbol_iterator dynamic_symbol_begin () const
elf_symbol_iterator dynamic_symbol_end () const
section_iterator section_begin () const override
section_iterator section_end () const override
Expected< int64_t > getRelocationAddend (DataRefImpl Rel) const override
uint8_t getBytesInAddress () const override
 The number of bytes used to represent an address in this object file format.
StringRef getFileFormatName () const override
Triple::ArchType getArch () const override
Triple::OSType getOS () const override
Expected< uint64_tgetStartAddress () const override
unsigned getPlatformFlags () const override
 Returns platform-specific object flags, if any.
const ELFFile< ELFT > & getELFFile () const
bool isDyldType () const
elf_symbol_iterator_range getDynamicSymbolIterators () const override
bool isRelocatableObject () const override
 True if this is a relocatable object (.o/.obj).
void createFakeSections ()
StringRef getCrelDecodeProblem (DataRefImpl Sec) const
Public Member Functions inherited from llvm::object::ELFObjectFileBase
elf_symbol_iterator_range symbols () const
Expected< SubtargetFeaturesgetFeatures () const override
std::optional< StringReftryGetCPUName () const override
void setARMSubArch (Triple &TheTriple) const override
std::vector< ELFPltEntrygetPltEntries (const MCSubtargetInfo &STI) const
Expected< std::vector< VersionEntry > > readDynsymVersions () const
 Returns a vector containing a symbol version for each dynamic symbol.
Expected< std::vector< BBAddrMap > > readBBAddrMap (std::optional< unsigned > TextSectionIndex=std::nullopt, std::vector< PGOAnalysisMap > *PGOAnalyses=nullptr) const
 Returns a vector of all BB address maps in the object file.
StringRef getCrelDecodeProblem (SectionRef Sec) const
Public Member Functions inherited from llvm::object::ObjectFile
 ObjectFile ()=delete
 ObjectFile (const ObjectFile &other)=delete
ObjectFileoperator= (const ObjectFile &other)=delete
uint64_t getCommonSymbolSize (DataRefImpl Symb) const
symbol_iterator_range symbols () const
section_iterator_range sections () const
virtual bool hasDebugInfo () const
Triple makeTriple () const
 Create a triple from the data in this object file.
virtual StringRef mapDebugSectionName (StringRef Name) const
 Maps a debug section name to a standard DWARF section name.
bool isReflectionSectionStrippable (llvm::binaryformat::Swift5ReflectionSectionKind ReflectionSectionKind) const
 True if the reflection section can be stripped by the linker.
Public Member Functions inherited from llvm::object::SymbolicFile
 SymbolicFile (unsigned int Type, MemoryBufferRef Source)
 ~SymbolicFile () override
basic_symbol_iterator_range symbols () const
Public Member Functions inherited from llvm::object::Binary
 Binary ()=delete
 Binary (const Binary &other)=delete
virtual ~Binary ()
StringRef getData () const
StringRef getFileName () const
MemoryBufferRef getMemoryBufferRef () const
unsigned int getType () const
bool isObject () const
bool isSymbolic () const
bool isArchive () const
bool isMachOUniversalBinary () const
bool isTapiUniversal () const
bool isELF () const
bool isMachO () const
bool isCOFF () const
bool isXCOFF () const
bool isWasm () const
bool isOffloadFile () const
bool isCOFFImportFile () const
bool isIR () const
bool isGOFF () const
bool isMinidump () const
bool isTapiFile () const
bool isLittleEndian () const
bool isWinRes () const
bool isDXContainer () const
Triple::ObjectFormatType getTripleObjectFormat () const

Static Public Member Functions

static Expected< ELFObjectFile< ELFT > > create (MemoryBufferRef Object, bool InitContent=true)
static bool classof (const Binary *v)
Static Public Member Functions inherited from llvm::object::ELFObjectFileBase
static bool classof (const Binary *v)
Static Public Member Functions inherited from llvm::object::ObjectFile
static Expected< OwningBinary< ObjectFile > > createObjectFile (StringRef ObjectPath)
static Expected< std::unique_ptr< ObjectFile > > createObjectFile (MemoryBufferRef Object, llvm::file_magic Type, bool InitContent=true)
static Expected< std::unique_ptr< ObjectFile > > createObjectFile (MemoryBufferRef Object)
static bool classof (const Binary *v)
static Expected< std::unique_ptr< COFFObjectFile > > createCOFFObjectFile (MemoryBufferRef Object)
static Expected< std::unique_ptr< ObjectFile > > createXCOFFObjectFile (MemoryBufferRef Object, unsigned FileType)
static Expected< std::unique_ptr< ObjectFile > > createELFObjectFile (MemoryBufferRef Object, bool InitContent=true)
static Expected< std::unique_ptr< MachOObjectFile > > createMachOObjectFile (MemoryBufferRef Object, uint32_t UniversalCputype=0, uint32_t UniversalIndex=0, size_t MachOFilesetEntryOffset=0)
 Create a MachOObjectFile instance from a given buffer.
static Expected< std::unique_ptr< ObjectFile > > createGOFFObjectFile (MemoryBufferRef Object)
static Expected< std::unique_ptr< WasmObjectFile > > createWasmObjectFile (MemoryBufferRef Object)
static Expected< std::unique_ptr< DXContainerObjectFile > > createDXContainerObjectFile (MemoryBufferRef Object)
Static Public Member Functions inherited from llvm::object::SymbolicFile
static Expected< std::unique_ptr< SymbolicFile > > createSymbolicFile (MemoryBufferRef Object, llvm::file_magic Type, LLVMContext *Context, bool InitContent=true)
static Expected< std::unique_ptr< SymbolicFile > > createSymbolicFile (MemoryBufferRef Object)
static bool classof (const Binary *v)
static bool isSymbolicFile (file_magic Type, const LLVMContext *Context)
Static Public Member Functions inherited from llvm::object::Binary
static Error checkOffset (MemoryBufferRef M, uintptr_t Addr, const uint64_t Size)

Protected Member Functions

Error initContent () override
void moveSymbolNext (DataRefImpl &Symb) const override
Expected< StringRefgetSymbolName (DataRefImpl Symb) const override
Expected< uint64_tgetSymbolAddress (DataRefImpl Symb) const override
uint64_t getSymbolValueImpl (DataRefImpl Symb) const override
uint32_t getSymbolAlignment (DataRefImpl Symb) const override
uint64_t getCommonSymbolSizeImpl (DataRefImpl Symb) const override
Expected< uint32_tgetSymbolFlags (DataRefImpl Symb) const override
uint8_t getSymbolBinding (DataRefImpl Symb) const override
uint8_t getSymbolOther (DataRefImpl Symb) const override
uint8_t getSymbolELFType (DataRefImpl Symb) const override
Expected< SymbolRef::Type > getSymbolType (DataRefImpl Symb) const override
Expected< section_iteratorgetSymbolSection (const Elf_Sym *Symb, const Elf_Shdr *SymTab) const
Expected< section_iteratorgetSymbolSection (DataRefImpl Symb) const override
void moveSectionNext (DataRefImpl &Sec) const override
Expected< StringRefgetSectionName (DataRefImpl Sec) const override
uint64_t getSectionAddress (DataRefImpl Sec) const override
uint64_t getSectionIndex (DataRefImpl Sec) const override
uint64_t getSectionSize (DataRefImpl Sec) const override
Expected< ArrayRef< uint8_t > > getSectionContents (DataRefImpl Sec) const override
uint64_t getSectionAlignment (DataRefImpl Sec) const override
bool isSectionCompressed (DataRefImpl Sec) const override
bool isSectionText (DataRefImpl Sec) const override
bool isSectionData (DataRefImpl Sec) const override
bool isSectionBSS (DataRefImpl Sec) const override
bool isSectionVirtual (DataRefImpl Sec) const override
bool isBerkeleyText (DataRefImpl Sec) const override
bool isBerkeleyData (DataRefImpl Sec) const override
bool isDebugSection (DataRefImpl Sec) const override
relocation_iterator section_rel_begin (DataRefImpl Sec) const override
relocation_iterator section_rel_end (DataRefImpl Sec) const override
std::vector< SectionRefdynamic_relocation_sections () const override
Expected< section_iteratorgetRelocatedSection (DataRefImpl Sec) const override
void moveRelocationNext (DataRefImpl &Rel) const override
uint64_t getRelocationOffset (DataRefImpl Rel) const override
symbol_iterator getRelocationSymbol (DataRefImpl Rel) const override
uint64_t getRelocationType (DataRefImpl Rel) const override
void getRelocationTypeName (DataRefImpl Rel, SmallVectorImpl< char > &Result) const override
StringRef getRelocationTypeName (uint32_t Type) const
uint32_t getSectionType (DataRefImpl Sec) const override
uint64_t getSectionFlags (DataRefImpl Sec) const override
uint64_t getSectionOffset (DataRefImpl Sec) const override
DataRefImpl toDRI (const Elf_Shdr *SymTable, unsigned SymbolNum) const
DataRefImpl toDRI (const Elf_Shdr *Sec) const
DataRefImpl toDRI (const Elf_Dyn *Dyn) const
const Elf_Shdr * toELFShdrIter (DataRefImpl Sec) const
bool isExportedToOtherDSO (const Elf_Sym *ESym) const
Error getBuildAttributes (ELFAttributeParser &Attributes) const override
Protected Member Functions inherited from llvm::object::ELFObjectFileBase
 ELFObjectFileBase (unsigned int Type, MemoryBufferRef Source)
Protected Member Functions inherited from llvm::object::ObjectFile
 ObjectFile (unsigned int Type, MemoryBufferRef Source)
const uint8_tbase () const
Error printSymbolName (raw_ostream &OS, DataRefImpl Symb) const override
virtual bool isSectionBitcode (DataRefImpl Sec) const
virtual bool isSectionStripped (DataRefImpl Sec) const
virtual llvm::binaryformat::Swift5ReflectionSectionKind mapReflectionSectionNameToEnumValue (StringRef SectionName) const
Expected< uint64_tgetSymbolValue (DataRefImpl Symb) const
Protected Member Functions inherited from llvm::object::Binary
 Binary (unsigned int Type, MemoryBufferRef Source)

Protected Attributes

ELFFile< ELFT > EF
const Elf_Shdr * DotDynSymSec = nullptr
const Elf_Shdr * DotSymtabSec = nullptr
const Elf_Shdr * DotSymtabShndxSec = nullptr
SmallVector< SmallVector< Elf_Crel, 0 >, 0 > Crels
SmallVector< std::string, 0 > CrelDecodeProblems
bool isDyldELFObject = false
Protected Attributes inherited from llvm::object::Binary
MemoryBufferRef Data

Additional Inherited Members

Public Types inherited from llvm::object::ELFObjectFileBase
using elf_symbol_iterator_range = iterator_range<elf_symbol_iterator>
Public Types inherited from llvm::object::ObjectFile
using symbol_iterator_range = iterator_range<symbol_iterator>
using section_iterator_range = iterator_range<section_iterator>
Public Types inherited from llvm::object::SymbolicFile
using basic_symbol_iterator_range = iterator_range<basic_symbol_iterator>
Protected Types inherited from llvm::object::Binary
enum  {
  ID_Archive , ID_MachOUniversalBinary , ID_COFFImportFile , ID_IR ,
  ID_TapiUniversal , ID_TapiFile , ID_Minidump , ID_WinRes ,
  ID_Offload , ID_StartObjects , ID_COFF , ID_XCOFF32 ,
  ID_XCOFF64 , ID_ELF32L , ID_ELF32B , ID_ELF64L ,
  ID_ELF64B , ID_MachO32L , ID_MachO32B , ID_MachO64L ,
  ID_MachO64B , ID_GOFF , ID_Wasm , ID_DXContainer ,
  ID_EndObjects
}
Static Protected Member Functions inherited from llvm::object::Binary
static unsigned int getELFType (bool isLE, bool is64Bits)
static unsigned int getMachOType (bool isLE, bool is64Bits)

Detailed Description

template<class ELFT>
class ELFObjectFile< ELFT >

Definition at line 268 of file ELFObjectFile.h.

Constructor & Destructor Documentation

◆ ELFObjectFile()

template<class ELFT>
llvm::object::ELFObjectFile< ELFT >::ELFObjectFile ( ELFObjectFile< ELFT > && Other)

Definition at line 1225 of file ELFObjectFile.h.

Member Function Documentation

◆ classof()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::classof ( const Binary * v)
inlinestatic

Definition at line 505 of file ELFObjectFile.h.

◆ create()

template<class ELFT>
Expected< ELFObjectFile< ELFT > > llvm::object::ELFObjectFile< ELFT >::create ( MemoryBufferRef Object,
bool InitContent = true )
static

Definition at line 1200 of file ELFObjectFile.h.

◆ createFakeSections()

template<class ELFT>
void llvm::object::ELFObjectFile< ELFT >::createFakeSections ( )
inline

Definition at line 515 of file ELFObjectFile.h.

◆ dynamic_relocation_sections()

template<class ELFT>
std::vector< SectionRef > llvm::object::ELFObjectFile< ELFT >::dynamic_relocation_sections ( ) const
overrideprotectedvirtual

Reimplemented from llvm::object::ObjectFile.

Definition at line 971 of file ELFObjectFile.h.

◆ dynamic_symbol_begin()

template<class ELFT>
elf_symbol_iterator llvm::object::ELFObjectFile< ELFT >::dynamic_symbol_begin ( ) const

Definition at line 1247 of file ELFObjectFile.h.

◆ dynamic_symbol_end()

template<class ELFT>
elf_symbol_iterator llvm::object::ELFObjectFile< ELFT >::dynamic_symbol_end ( ) const

Definition at line 1257 of file ELFObjectFile.h.

◆ getArch()

template<class ELFT>
Triple::ArchType llvm::object::ELFObjectFile< ELFT >::getArch ( ) const
overridevirtual

Implements llvm::object::ObjectFile.

Definition at line 1365 of file ELFObjectFile.h.

◆ getBuildAttributes()

template<class ELFT>
Error llvm::object::ELFObjectFile< ELFT >::getBuildAttributes ( ELFAttributeParser & Attributes) const
inlineoverrideprotectedvirtual

Implements llvm::object::ELFObjectFileBase.

Definition at line 410 of file ELFObjectFile.h.

◆ getBytesInAddress()

template<class ELFT>
uint8_t llvm::object::ELFObjectFile< ELFT >::getBytesInAddress ( ) const
overridevirtual

The number of bytes used to represent an address in this object file format.

Implements llvm::object::ObjectFile.

Definition at line 1282 of file ELFObjectFile.h.

◆ getCommonSymbolSizeImpl()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getCommonSymbolSizeImpl ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 702 of file ELFObjectFile.h.

◆ getCrel()

template<class ELFT>
ELFObjectFile< ELFT >::Elf_Crel llvm::object::ELFObjectFile< ELFT >::getCrel ( DataRefImpl Crel) const

Definition at line 1192 of file ELFObjectFile.h.

◆ getCrelDecodeProblem()

template<class ELFT>
StringRef llvm::object::ELFObjectFile< ELFT >::getCrelDecodeProblem ( DataRefImpl Sec) const

Definition at line 1511 of file ELFObjectFile.h.

◆ getDynamicSymbolIterators()

template<class ELFT>
ELFObjectFileBase::elf_symbol_iterator_range llvm::object::ELFObjectFile< ELFT >::getDynamicSymbolIterators ( ) const
overridevirtual

Implements llvm::object::ELFObjectFileBase.

Definition at line 1502 of file ELFObjectFile.h.

◆ getELFFile()

template<class ELFT>
const ELFFile< ELFT > & llvm::object::ELFObjectFile< ELFT >::getELFFile ( ) const
inline

Definition at line 502 of file ELFObjectFile.h.

◆ getFileFormatName()

template<class ELFT>
StringRef llvm::object::ELFObjectFile< ELFT >::getFileFormatName ( ) const
overridevirtual

Implements llvm::object::ObjectFile.

Definition at line 1287 of file ELFObjectFile.h.

◆ getOS()

template<class ELFT>
Triple::OSType llvm::object::ELFObjectFile< ELFT >::getOS ( ) const
overridevirtual

Reimplemented from llvm::object::ObjectFile.

Definition at line 1465 of file ELFObjectFile.h.

◆ getPlatformFlags()

template<class ELFT>
unsigned llvm::object::ELFObjectFile< ELFT >::getPlatformFlags ( ) const
inlineoverridevirtual

Returns platform-specific object flags, if any.

Implements llvm::object::ELFObjectFileBase.

Definition at line 500 of file ELFObjectFile.h.

◆ getRel()

template<class ELFT>
const ELFObjectFile< ELFT >::Elf_Rel * llvm::object::ELFObjectFile< ELFT >::getRel ( DataRefImpl Rel) const

Definition at line 1172 of file ELFObjectFile.h.

◆ getRela()

template<class ELFT>
const ELFObjectFile< ELFT >::Elf_Rela * llvm::object::ELFObjectFile< ELFT >::getRela ( DataRefImpl Rela) const

Definition at line 1182 of file ELFObjectFile.h.

◆ getRelocatedSection()

template<class ELFT>
Expected< section_iterator > llvm::object::ELFObjectFile< ELFT >::getRelocatedSection ( DataRefImpl Sec) const
overrideprotectedvirtual

Reimplemented from llvm::object::ObjectFile.

Definition at line 1087 of file ELFObjectFile.h.

◆ getRelocationAddend()

template<class ELFT>
Expected< int64_t > llvm::object::ELFObjectFile< ELFT >::getRelocationAddend ( DataRefImpl Rel) const
overridevirtual

Implements llvm::object::ELFObjectFileBase.

Definition at line 1162 of file ELFObjectFile.h.

◆ getRelocationOffset()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getRelocationOffset ( DataRefImpl Rel) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1127 of file ELFObjectFile.h.

◆ getRelocationSymbol()

template<class ELFT>
symbol_iterator llvm::object::ELFObjectFile< ELFT >::getRelocationSymbol ( DataRefImpl Rel) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1107 of file ELFObjectFile.h.

◆ getRelocationType()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getRelocationType ( DataRefImpl Rel) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1138 of file ELFObjectFile.h.

◆ getRelocationTypeName() [1/2]

template<class ELFT>
void llvm::object::ELFObjectFile< ELFT >::getRelocationTypeName ( DataRefImpl Rel,
SmallVectorImpl< char > & Result ) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1154 of file ELFObjectFile.h.

◆ getRelocationTypeName() [2/2]

template<class ELFT>
StringRef llvm::object::ELFObjectFile< ELFT >::getRelocationTypeName ( uint32_t Type) const
protected

Definition at line 1149 of file ELFObjectFile.h.

◆ getRelSection()

template<class ELFT>
const Elf_Shdr * llvm::object::ELFObjectFile< ELFT >::getRelSection ( DataRefImpl Rel) const
inline

Get the relocation section that contains Rel.

Definition at line 469 of file ELFObjectFile.h.

◆ getSection()

template<class ELFT>
const Elf_Shdr * llvm::object::ELFObjectFile< ELFT >::getSection ( DataRefImpl Sec) const
inline

Definition at line 477 of file ELFObjectFile.h.

◆ getSectionAddress()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getSectionAddress ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 907 of file ELFObjectFile.h.

◆ getSectionAlignment()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getSectionAlignment ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 941 of file ELFObjectFile.h.

◆ getSectionContents()

template<class ELFT>
Expected< ArrayRef< uint8_t > > llvm::object::ELFObjectFile< ELFT >::getSectionContents ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 929 of file ELFObjectFile.h.

◆ getSectionFlags()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getSectionFlags ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ELFObjectFileBase.

Definition at line 590 of file ELFObjectFile.h.

◆ getSectionIndex()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getSectionIndex ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 912 of file ELFObjectFile.h.

◆ getSectionName()

template<class ELFT>
Expected< StringRef > llvm::object::ELFObjectFile< ELFT >::getSectionName ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 902 of file ELFObjectFile.h.

◆ getSectionOffset()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getSectionOffset ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ELFObjectFileBase.

Definition at line 600 of file ELFObjectFile.h.

◆ getSectionSize()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getSectionSize ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 923 of file ELFObjectFile.h.

◆ getSectionType()

template<class ELFT>
uint32_t llvm::object::ELFObjectFile< ELFT >::getSectionType ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ELFObjectFileBase.

Definition at line 595 of file ELFObjectFile.h.

◆ getStartAddress()

template<class ELFT>
Expected< uint64_t > llvm::object::ELFObjectFile< ELFT >::getStartAddress ( ) const
overridevirtual

Reimplemented from llvm::object::ObjectFile.

Definition at line 1496 of file ELFObjectFile.h.

◆ getSymbol()

template<class ELFT>
Expected< const Elf_Sym * > llvm::object::ELFObjectFile< ELFT >::getSymbol ( DataRefImpl Sym) const
inline

Definition at line 464 of file ELFObjectFile.h.

◆ getSymbolAddress()

template<class ELFT>
Expected< uint64_t > llvm::object::ELFObjectFile< ELFT >::getSymbolAddress ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 625 of file ELFObjectFile.h.

◆ getSymbolAlignment()

template<class ELFT>
uint32_t llvm::object::ELFObjectFile< ELFT >::getSymbolAlignment ( DataRefImpl Symb) const
overrideprotectedvirtual

Reimplemented from llvm::object::ObjectFile.

Definition at line 671 of file ELFObjectFile.h.

◆ getSymbolBinding()

template<class ELFT>
uint8_t llvm::object::ELFObjectFile< ELFT >::getSymbolBinding ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::ELFObjectFileBase.

Definition at line 707 of file ELFObjectFile.h.

◆ getSymbolELFType()

template<class ELFT>
uint8_t llvm::object::ELFObjectFile< ELFT >::getSymbolELFType ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::ELFObjectFileBase.

Definition at line 723 of file ELFObjectFile.h.

◆ getSymbolFlags()

template<class ELFT>
Expected< uint32_t > llvm::object::ELFObjectFile< ELFT >::getSymbolFlags ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::SymbolicFile.

Definition at line 756 of file ELFObjectFile.h.

◆ getSymbolName()

template<class ELFT>
Expected< StringRef > llvm::object::ELFObjectFile< ELFT >::getSymbolName ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 560 of file ELFObjectFile.h.

◆ getSymbolOther()

template<class ELFT>
uint8_t llvm::object::ELFObjectFile< ELFT >::getSymbolOther ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::ELFObjectFileBase.

Definition at line 715 of file ELFObjectFile.h.

◆ getSymbolSection() [1/2]

template<class ELFT>
Expected< section_iterator > llvm::object::ELFObjectFile< ELFT >::getSymbolSection ( const Elf_Sym * Symb,
const Elf_Shdr * SymTab ) const
protected

Definition at line 857 of file ELFObjectFile.h.

◆ getSymbolSection() [2/2]

template<class ELFT>
Expected< section_iterator > llvm::object::ELFObjectFile< ELFT >::getSymbolSection ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 884 of file ELFObjectFile.h.

◆ getSymbolType()

template<class ELFT>
Expected< SymbolRef::Type > llvm::object::ELFObjectFile< ELFT >::getSymbolType ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 732 of file ELFObjectFile.h.

◆ getSymbolValueImpl()

template<class ELFT>
uint64_t llvm::object::ELFObjectFile< ELFT >::getSymbolValueImpl ( DataRefImpl Symb) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 605 of file ELFObjectFile.h.

◆ initContent()

template<class ELFT>
Error llvm::object::ELFObjectFile< ELFT >::initContent ( )
overrideprotectedvirtual

Reimplemented from llvm::object::Binary.

Definition at line 530 of file ELFObjectFile.h.

◆ is64Bit()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::is64Bit ( ) const
inlineoverridevirtual

Implements llvm::object::SymbolicFile.

Definition at line 484 of file ELFObjectFile.h.

◆ isBerkeleyData()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isBerkeleyData ( DataRefImpl Sec) const
overrideprotectedvirtual

Reimplemented from llvm::object::ObjectFile.

Definition at line 1011 of file ELFObjectFile.h.

◆ isBerkeleyText()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isBerkeleyText ( DataRefImpl Sec) const
overrideprotectedvirtual

Reimplemented from llvm::object::ObjectFile.

Definition at line 1004 of file ELFObjectFile.h.

◆ IsContentValid()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::IsContentValid ( ) const
inline

Definition at line 285 of file ELFObjectFile.h.

◆ isDebugSection()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isDebugSection ( DataRefImpl Sec) const
overrideprotectedvirtual

Reimplemented from llvm::object::ObjectFile.

Definition at line 1018 of file ELFObjectFile.h.

◆ isDyldType()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isDyldType ( ) const
inline

Definition at line 504 of file ELFObjectFile.h.

◆ isExportedToOtherDSO()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isExportedToOtherDSO ( const Elf_Sym * ESym) const
inlineprotected

Definition at line 397 of file ELFObjectFile.h.

◆ isRelocatableObject()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isRelocatableObject ( ) const
overridevirtual

True if this is a relocatable object (.o/.obj).

Implements llvm::object::ObjectFile.

Definition at line 1506 of file ELFObjectFile.h.

◆ isSectionBSS()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isSectionBSS ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 964 of file ELFObjectFile.h.

◆ isSectionCompressed()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isSectionCompressed ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 946 of file ELFObjectFile.h.

◆ isSectionData()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isSectionData ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 956 of file ELFObjectFile.h.

◆ isSectionText()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isSectionText ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 951 of file ELFObjectFile.h.

◆ isSectionVirtual()

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isSectionVirtual ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 999 of file ELFObjectFile.h.

◆ moveRelocationNext()

template<class ELFT>
void llvm::object::ELFObjectFile< ELFT >::moveRelocationNext ( DataRefImpl & Rel) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1101 of file ELFObjectFile.h.

◆ moveSectionNext()

template<class ELFT>
void llvm::object::ELFObjectFile< ELFT >::moveSectionNext ( DataRefImpl & Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 896 of file ELFObjectFile.h.

◆ moveSymbolNext()

template<class ELFT>
void llvm::object::ELFObjectFile< ELFT >::moveSymbolNext ( DataRefImpl & Symb) const
overrideprotectedvirtual

Implements llvm::object::SymbolicFile.

Definition at line 526 of file ELFObjectFile.h.

◆ section_begin()

template<class ELFT>
section_iterator llvm::object::ELFObjectFile< ELFT >::section_begin ( ) const
overridevirtual

Implements llvm::object::ObjectFile.

Definition at line 1266 of file ELFObjectFile.h.

◆ section_end()

template<class ELFT>
section_iterator llvm::object::ELFObjectFile< ELFT >::section_end ( ) const
overridevirtual

Implements llvm::object::ObjectFile.

Definition at line 1274 of file ELFObjectFile.h.

◆ section_rel_begin()

template<class ELFT>
relocation_iterator llvm::object::ELFObjectFile< ELFT >::section_rel_begin ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1032 of file ELFObjectFile.h.

◆ section_rel_end()

template<class ELFT>
relocation_iterator llvm::object::ELFObjectFile< ELFT >::section_rel_end ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1063 of file ELFObjectFile.h.

◆ symbol_begin()

template<class ELFT>
basic_symbol_iterator llvm::object::ELFObjectFile< ELFT >::symbol_begin ( ) const
overridevirtual

Implements llvm::object::SymbolicFile.

Definition at line 1230 of file ELFObjectFile.h.

◆ symbol_end()

template<class ELFT>
basic_symbol_iterator llvm::object::ELFObjectFile< ELFT >::symbol_end ( ) const
overridevirtual

Implements llvm::object::SymbolicFile.

Definition at line 1238 of file ELFObjectFile.h.

◆ toDRI() [1/3]

template<class ELFT>
DataRefImpl llvm::object::ELFObjectFile< ELFT >::toDRI ( const Elf_Dyn * Dyn) const
inlineprotected

Definition at line 391 of file ELFObjectFile.h.

◆ toDRI() [2/3]

template<class ELFT>
DataRefImpl llvm::object::ELFObjectFile< ELFT >::toDRI ( const Elf_Shdr * Sec) const
inlineprotected

Definition at line 385 of file ELFObjectFile.h.

◆ toDRI() [3/3]

template<class ELFT>
DataRefImpl llvm::object::ELFObjectFile< ELFT >::toDRI ( const Elf_Shdr * SymTable,
unsigned SymbolNum ) const
inlineprotected

Definition at line 356 of file ELFObjectFile.h.

◆ toELFShdrIter()

template<class ELFT>
const Elf_Shdr * llvm::object::ELFObjectFile< ELFT >::toELFShdrIter ( DataRefImpl Sec) const
inlineprotected

Definition at line 381 of file ELFObjectFile.h.

◆ toSectionRef()

template<class ELFT>
SectionRef llvm::object::ELFObjectFile< ELFT >::toSectionRef ( const Elf_Shdr * Sec) const
inline

Definition at line 277 of file ELFObjectFile.h.

◆ toSymbolRef()

template<class ELFT>
ELFSymbolRef llvm::object::ELFObjectFile< ELFT >::toSymbolRef ( const Elf_Shdr * SymTable,
unsigned SymbolNum ) const
inline

Definition at line 281 of file ELFObjectFile.h.

Member Data Documentation

◆ CrelDecodeProblems

template<class ELFT>
SmallVector<std::string, 0> llvm::object::ELFObjectFile< ELFT >::CrelDecodeProblems
mutableprotected

Definition at line 303 of file ELFObjectFile.h.

◆ Crels

template<class ELFT>
SmallVector<SmallVector<Elf_Crel, 0>, 0> llvm::object::ELFObjectFile< ELFT >::Crels
mutableprotected

Definition at line 302 of file ELFObjectFile.h.

◆ DotDynSymSec

template<class ELFT>
const Elf_Shdr* llvm::object::ELFObjectFile< ELFT >::DotDynSymSec = nullptr
protected

Definition at line 297 of file ELFObjectFile.h.

◆ DotSymtabSec

template<class ELFT>
const Elf_Shdr* llvm::object::ELFObjectFile< ELFT >::DotSymtabSec = nullptr
protected

Definition at line 298 of file ELFObjectFile.h.

◆ DotSymtabShndxSec

template<class ELFT>
const Elf_Shdr* llvm::object::ELFObjectFile< ELFT >::DotSymtabShndxSec = nullptr
protected

Definition at line 299 of file ELFObjectFile.h.

◆ EF

template<class ELFT>
ELFFile<ELFT> llvm::object::ELFObjectFile< ELFT >::EF
protected

Definition at line 295 of file ELFObjectFile.h.

◆ isDyldELFObject

template<class ELFT>
bool llvm::object::ELFObjectFile< ELFT >::isDyldELFObject = false
protected

Definition at line 453 of file ELFObjectFile.h.


The documentation for this class was generated from the following file: