LLVM 19.0.0git
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
llvm::object::COFFObjectFile Class Reference

#include "llvm/Object/COFF.h"

Inheritance diagram for llvm::object::COFFObjectFile:
Inheritance graph
[legend]

Public Member Functions

uintptr_t getSymbolTable () const
 
uint16_t getMachine () const
 
uint16_t getSizeOfOptionalHeader () const
 
uint16_t getCharacteristics () const
 
uint32_t getTimeDateStamp () const
 
uint32_t getNumberOfSections () const
 
uint32_t getPointerToSymbolTable () const
 
uint32_t getRawNumberOfSymbols () const
 
uint32_t getNumberOfSymbols () const
 
uint32_t getStringTableSize () const
 
const export_directory_table_entrygetExportTable () const
 
const coff_load_configuration32getLoadConfig32 () const
 
const coff_load_configuration64getLoadConfig64 () const
 
const chpe_metadatagetCHPEMetadata () const
 
StringRef getRelocationTypeName (uint16_t Type) const
 
basic_symbol_iterator symbol_begin () const override
 
basic_symbol_iterator symbol_end () const override
 
section_iterator section_begin () const override
 
section_iterator section_end () const override
 
bool is64Bit () const override
 
const coff_sectiongetCOFFSection (const SectionRef &Section) const
 
COFFSymbolRef getCOFFSymbol (const DataRefImpl &Ref) const
 
COFFSymbolRef getCOFFSymbol (const SymbolRef &Symbol) const
 
const coff_relocationgetCOFFRelocation (const RelocationRef &Reloc) const
 
unsigned getSectionID (SectionRef Sec) const
 
unsigned getSymbolSectionID (SymbolRef Sym) const
 
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
 
Expected< uint64_tgetStartAddress () const override
 
Expected< SubtargetFeaturesgetFeatures () const override
 
import_directory_iterator import_directory_begin () const
 
import_directory_iterator import_directory_end () const
 
delay_import_directory_iterator delay_import_directory_begin () const
 
delay_import_directory_iterator delay_import_directory_end () const
 
export_directory_iterator export_directory_begin () const
 
export_directory_iterator export_directory_end () const
 
base_reloc_iterator base_reloc_begin () const
 
base_reloc_iterator base_reloc_end () const
 
const debug_directorydebug_directory_begin () const
 
const debug_directorydebug_directory_end () const
 
iterator_range< import_directory_iteratorimport_directories () const
 
iterator_range< delay_import_directory_iteratordelay_import_directories () const
 
iterator_range< export_directory_iteratorexport_directories () const
 
iterator_range< base_reloc_iteratorbase_relocs () const
 
iterator_range< const debug_directory * > debug_directories () const
 
const coff_tls_directory32getTLSDirectory32 () const
 
const coff_tls_directory64getTLSDirectory64 () const
 
const dos_headergetDOSHeader () const
 
const coff_file_headergetCOFFHeader () const
 
const coff_bigobj_file_headergetCOFFBigObjHeader () const
 
const pe32_headergetPE32Header () const
 
const pe32plus_headergetPE32PlusHeader () const
 
const data_directorygetDataDirectory (uint32_t index) const
 
Expected< const coff_section * > getSection (int32_t index) const
 
Expected< COFFSymbolRefgetSymbol (uint32_t index) const
 
template<typename T >
Error getAuxSymbol (uint32_t index, const T *&Res) const
 
Expected< StringRefgetSymbolName (COFFSymbolRef Symbol) const
 
Expected< StringRefgetSymbolName (const coff_symbol_generic *Symbol) const
 
ArrayRef< uint8_t > getSymbolAuxData (COFFSymbolRef Symbol) const
 
uint32_t getSymbolIndex (COFFSymbolRef Symbol) const
 
size_t getSymbolTableEntrySize () const
 
ArrayRef< coff_relocationgetRelocations (const coff_section *Sec) const
 
Expected< StringRefgetSectionName (const coff_section *Sec) const
 
uint64_t getSectionSize (const coff_section *Sec) const
 
Error getSectionContents (const coff_section *Sec, ArrayRef< uint8_t > &Res) const
 
uint64_t getImageBase () const
 
Error getVaPtr (uint64_t VA, uintptr_t &Res) const
 
Error getRvaPtr (uint32_t Rva, uintptr_t &Res, const char *ErrorContext=nullptr) const
 
Error getRvaAndSizeAsBytes (uint32_t RVA, uint32_t Size, ArrayRef< uint8_t > &Contents, const char *ErrorContext=nullptr) const
 Given an RVA base and size, returns a valid array of bytes or an error code if the RVA and size is not contained completely within a valid section.
 
Error getHintName (uint32_t Rva, uint16_t &Hint, StringRef &Name) const
 
Error getDebugPDBInfo (const debug_directory *DebugDir, const codeview::DebugInfo *&Info, StringRef &PDBFileName) const
 Get PDB information out of a codeview debug directory entry.
 
Error getDebugPDBInfo (const codeview::DebugInfo *&Info, StringRef &PDBFileName) const
 Get PDB information from an executable.
 
bool isRelocatableObject () const override
 True if this is a relocatable object (.o/.obj).
 
bool is64 () const
 
StringRef mapDebugSectionName (StringRef Name) const override
 Maps a debug section name to a standard DWARF section name.
 
- Public Member Functions inherited from llvm::object::ObjectFile
 ObjectFile ()=delete
 
 ObjectFile (const ObjectFile &other)=delete
 
uint64_t getCommonSymbolSize (DataRefImpl Symb) const
 
virtual std::vector< SectionRefdynamic_relocation_sections () const
 
symbol_iterator_range symbols () const
 
virtual section_iterator section_begin () const =0
 
virtual section_iterator section_end () const =0
 
section_iterator_range sections () const
 
virtual bool hasDebugInfo () const
 
virtual uint8_t getBytesInAddress () const =0
 The number of bytes used to represent an address in this object file format.
 
virtual StringRef getFileFormatName () const =0
 
virtual Triple::ArchType getArch () const =0
 
virtual Triple::OSType getOS () const
 
virtual Expected< SubtargetFeaturesgetFeatures () const =0
 
virtual std::optional< StringReftryGetCPUName () const
 
virtual void setARMSubArch (Triple &TheTriple) const
 
virtual Expected< uint64_tgetStartAddress () 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.
 
virtual bool isRelocatableObject () const =0
 True if this is a relocatable object (.o/.obj).
 
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
 
virtual void moveSymbolNext (DataRefImpl &Symb) const =0
 
virtual Error printSymbolName (raw_ostream &OS, DataRefImpl Symb) const =0
 
virtual Expected< uint32_tgetSymbolFlags (DataRefImpl Symb) const =0
 
virtual basic_symbol_iterator symbol_begin () const =0
 
virtual basic_symbol_iterator symbol_end () const =0
 
virtual bool is64Bit () const =0
 
basic_symbol_iterator_range symbols () const
 
- Public Member Functions inherited from llvm::object::Binary
 Binary ()=delete
 
 Binary (const Binary &other)=delete
 
virtual ~Binary ()
 
virtual Error initContent ()
 
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
 
Triple::ObjectFormatType getTripleObjectFormat () const
 

Static Public Member Functions

static Expected< std::unique_ptr< COFFObjectFile > > create (MemoryBufferRef Object)
 
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 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

void moveSymbolNext (DataRefImpl &Symb) const override
 
Expected< StringRefgetSymbolName (DataRefImpl Symb) const override
 
Expected< uint64_tgetSymbolAddress (DataRefImpl Symb) const override
 
uint32_t getSymbolAlignment (DataRefImpl Symb) const override
 
uint64_t getSymbolValueImpl (DataRefImpl Symb) const override
 
uint64_t getCommonSymbolSizeImpl (DataRefImpl Symb) const override
 
Expected< uint32_tgetSymbolFlags (DataRefImpl Symb) const override
 
Expected< SymbolRef::TypegetSymbolType (DataRefImpl Symb) const override
 
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 isDebugSection (DataRefImpl Sec) const override
 
relocation_iterator section_rel_begin (DataRefImpl Sec) const override
 
relocation_iterator section_rel_end (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
 
- Protected Member Functions inherited from llvm::object::ObjectFile
 ObjectFile (unsigned int Type, MemoryBufferRef Source)
 
const uint8_t * base () const
 
virtual Expected< StringRefgetSymbolName (DataRefImpl Symb) const =0
 
Error printSymbolName (raw_ostream &OS, DataRefImpl Symb) const override
 
virtual Expected< uint64_tgetSymbolAddress (DataRefImpl Symb) const =0
 
virtual uint64_t getSymbolValueImpl (DataRefImpl Symb) const =0
 
virtual uint32_t getSymbolAlignment (DataRefImpl Symb) const
 
virtual uint64_t getCommonSymbolSizeImpl (DataRefImpl Symb) const =0
 
virtual Expected< SymbolRef::TypegetSymbolType (DataRefImpl Symb) const =0
 
virtual Expected< section_iteratorgetSymbolSection (DataRefImpl Symb) const =0
 
virtual void moveSectionNext (DataRefImpl &Sec) const =0
 
virtual Expected< StringRefgetSectionName (DataRefImpl Sec) const =0
 
virtual uint64_t getSectionAddress (DataRefImpl Sec) const =0
 
virtual uint64_t getSectionIndex (DataRefImpl Sec) const =0
 
virtual uint64_t getSectionSize (DataRefImpl Sec) const =0
 
virtual Expected< ArrayRef< uint8_t > > getSectionContents (DataRefImpl Sec) const =0
 
virtual uint64_t getSectionAlignment (DataRefImpl Sec) const =0
 
virtual bool isSectionCompressed (DataRefImpl Sec) const =0
 
virtual bool isSectionText (DataRefImpl Sec) const =0
 
virtual bool isSectionData (DataRefImpl Sec) const =0
 
virtual bool isSectionBSS (DataRefImpl Sec) const =0
 
virtual bool isSectionVirtual (DataRefImpl Sec) const =0
 
virtual bool isSectionBitcode (DataRefImpl Sec) const
 
virtual bool isSectionStripped (DataRefImpl Sec) const
 
virtual bool isBerkeleyText (DataRefImpl Sec) const
 
virtual bool isBerkeleyData (DataRefImpl Sec) const
 
virtual bool isDebugSection (DataRefImpl Sec) const
 
virtual relocation_iterator section_rel_begin (DataRefImpl Sec) const =0
 
virtual relocation_iterator section_rel_end (DataRefImpl Sec) const =0
 
virtual Expected< section_iteratorgetRelocatedSection (DataRefImpl Sec) const
 
virtual void moveRelocationNext (DataRefImpl &Rel) const =0
 
virtual uint64_t getRelocationOffset (DataRefImpl Rel) const =0
 
virtual symbol_iterator getRelocationSymbol (DataRefImpl Rel) const =0
 
virtual uint64_t getRelocationType (DataRefImpl Rel) const =0
 
virtual void getRelocationTypeName (DataRefImpl Rel, SmallVectorImpl< char > &Result) const =0
 
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)
 

Friends

class ImportDirectoryEntryRef
 
class ExportDirectoryEntryRef
 

Additional Inherited Members

- 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_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)
 
- Protected Attributes inherited from llvm::object::Binary
MemoryBufferRef Data
 

Detailed Description

Definition at line 835 of file COFF.h.

Member Function Documentation

◆ base_reloc_begin()

base_reloc_iterator COFFObjectFile::base_reloc_begin ( ) const

Definition at line 1043 of file COFFObjectFile.cpp.

Referenced by base_relocs().

◆ base_reloc_end()

base_reloc_iterator COFFObjectFile::base_reloc_end ( ) const

Definition at line 1047 of file COFFObjectFile.cpp.

Referenced by base_relocs().

◆ base_relocs()

iterator_range< base_reloc_iterator > COFFObjectFile::base_relocs ( ) const

Definition at line 1113 of file COFFObjectFile.cpp.

References base_reloc_begin(), base_reloc_end(), and llvm::make_range().

◆ classof()

static bool llvm::object::COFFObjectFile::classof ( const Binary v)
inlinestatic

Definition at line 1169 of file COFF.h.

◆ create()

Expected< std::unique_ptr< COFFObjectFile > > COFFObjectFile::create ( MemoryBufferRef  Object)
static

Definition at line 808 of file COFFObjectFile.cpp.

References E.

Referenced by llvm::object::ObjectFile::createCOFFObjectFile(), and getCOFFFileMachine().

◆ debug_directories()

iterator_range< const debug_directory * > llvm::object::COFFObjectFile::debug_directories ( ) const
inline

Definition at line 1069 of file COFF.h.

References debug_directory_begin(), debug_directory_end(), and llvm::make_range().

Referenced by getDebugPDBInfo().

◆ debug_directory_begin()

const debug_directory * llvm::object::COFFObjectFile::debug_directory_begin ( ) const
inline

Definition at line 1057 of file COFF.h.

Referenced by debug_directories().

◆ debug_directory_end()

const debug_directory * llvm::object::COFFObjectFile::debug_directory_end ( ) const
inline

Definition at line 1060 of file COFF.h.

Referenced by debug_directories().

◆ delay_import_directories()

iterator_range< delay_import_directory_iterator > COFFObjectFile::delay_import_directories ( ) const

◆ delay_import_directory_begin()

delay_import_directory_iterator COFFObjectFile::delay_import_directory_begin ( ) const

Definition at line 1004 of file COFFObjectFile.cpp.

Referenced by delay_import_directories().

◆ delay_import_directory_end()

delay_import_directory_iterator COFFObjectFile::delay_import_directory_end ( ) const

Definition at line 1010 of file COFFObjectFile.cpp.

Referenced by delay_import_directories().

◆ export_directories()

iterator_range< export_directory_iterator > COFFObjectFile::export_directories ( ) const

◆ export_directory_begin()

export_directory_iterator COFFObjectFile::export_directory_begin ( ) const

Definition at line 1016 of file COFFObjectFile.cpp.

References ExportDirectoryEntryRef.

Referenced by export_directories().

◆ export_directory_end()

export_directory_iterator COFFObjectFile::export_directory_end ( ) const

◆ getArch()

Triple::ArchType COFFObjectFile::getArch ( ) const
overridevirtual

◆ getAuxSymbol()

template<typename T >
Error llvm::object::COFFObjectFile::getAuxSymbol ( uint32_t  index,
const T *&  Res 
) const
inline

Definition at line 1107 of file COFF.h.

References E, getSymbol(), llvm::Error::success(), and llvm::Expected< T >::takeError().

◆ getBytesInAddress()

uint8_t COFFObjectFile::getBytesInAddress ( ) const
overridevirtual

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

Implements llvm::object::ObjectFile.

Definition at line 1051 of file COFFObjectFile.cpp.

References llvm::Triple::aarch64, getArch(), and llvm::Triple::x86_64.

◆ getCharacteristics()

uint16_t llvm::object::COFFObjectFile::getCharacteristics ( ) const
inline

◆ getCHPEMetadata()

const chpe_metadata * llvm::object::COFFObjectFile::getCHPEMetadata ( ) const
inline

Definition at line 988 of file COFF.h.

◆ getCOFFBigObjHeader()

const coff_bigobj_file_header * llvm::object::COFFObjectFile::getCOFFBigObjHeader ( ) const
inline

Definition at line 1087 of file COFF.h.

Referenced by llvm::objcopy::coff::COFFReader::create().

◆ getCOFFHeader()

const coff_file_header * llvm::object::COFFObjectFile::getCOFFHeader ( ) const
inline

Definition at line 1086 of file COFF.h.

Referenced by llvm::objcopy::coff::COFFReader::create().

◆ getCOFFRelocation()

const coff_relocation * COFFObjectFile::getCOFFRelocation ( const RelocationRef Reloc) const

◆ getCOFFSection()

const coff_section * COFFObjectFile::getCOFFSection ( const SectionRef Section) const

◆ getCOFFSymbol() [1/2]

COFFSymbolRef COFFObjectFile::getCOFFSymbol ( const DataRefImpl Ref) const

◆ getCOFFSymbol() [2/2]

COFFSymbolRef COFFObjectFile::getCOFFSymbol ( const SymbolRef Symbol) const

Definition at line 1303 of file COFFObjectFile.cpp.

References getCOFFSymbol().

◆ getCommonSymbolSizeImpl()

uint64_t COFFObjectFile::getCommonSymbolSizeImpl ( DataRefImpl  Symb) const
overrideprotectedvirtual

◆ getDataDirectory()

const data_directory * COFFObjectFile::getDataDirectory ( uint32_t  index) const

◆ getDebugPDBInfo() [1/2]

Error COFFObjectFile::getDebugPDBInfo ( const codeview::DebugInfo *&  Info,
StringRef PDBFileName 
) const

Get PDB information from an executable.

If the information is not present, Info will be set to nullptr and PDBFileName will be empty. An error is returned only on corrupt object files. Convenience accessor that can be used if the debug directory is not already handy.

Definition at line 565 of file COFFObjectFile.cpp.

References D, debug_directories(), getDebugPDBInfo(), llvm::COFF::IMAGE_DEBUG_TYPE_CODEVIEW, and llvm::Error::success().

◆ getDebugPDBInfo() [2/2]

Error COFFObjectFile::getDebugPDBInfo ( const debug_directory DebugDir,
const codeview::DebugInfo *&  Info,
StringRef PDBFileName 
) const

◆ getDOSHeader()

const dos_header * llvm::object::COFFObjectFile::getDOSHeader ( ) const
inline

Definition at line 1080 of file COFF.h.

References llvm::object::ObjectFile::base().

Referenced by getSectionSize().

◆ getExportTable()

const export_directory_table_entry * llvm::object::COFFObjectFile::getExportTable ( ) const
inline

Definition at line 974 of file COFF.h.

◆ getFeatures()

Expected< SubtargetFeatures > llvm::object::COFFObjectFile::getFeatures ( ) const
inlineoverridevirtual

Implements llvm::object::ObjectFile.

Definition at line 1045 of file COFF.h.

◆ getFileFormatName()

StringRef COFFObjectFile::getFileFormatName ( ) const
overridevirtual

◆ getHintName()

Error COFFObjectFile::getHintName ( uint32_t  Rva,
uint16_t Hint,
StringRef Name 
) const

Definition at line 535 of file COFFObjectFile.cpp.

References E, getRvaPtr(), Name, Ptr, and llvm::Error::success().

◆ getImageBase()

uint64_t COFFObjectFile::getImageBase ( ) const

◆ getLoadConfig32()

const coff_load_configuration32 * llvm::object::COFFObjectFile::getLoadConfig32 ( ) const
inline

Definition at line 978 of file COFF.h.

References assert(), and is64().

◆ getLoadConfig64()

const coff_load_configuration64 * llvm::object::COFFObjectFile::getLoadConfig64 ( ) const
inline

Definition at line 983 of file COFF.h.

References assert(), and is64().

◆ getMachine()

uint16_t llvm::object::COFFObjectFile::getMachine ( ) const
inline

◆ getNumberOfSections()

uint32_t llvm::object::COFFObjectFile::getNumberOfSections ( ) const
inline

◆ getNumberOfSymbols()

uint32_t llvm::object::COFFObjectFile::getNumberOfSymbols ( ) const
inline

Definition at line 966 of file COFF.h.

References getRawNumberOfSymbols().

Referenced by getRelocationSymbol(), getSymbol(), getSymbolAuxData(), and getSymbolIndex().

◆ getPE32Header()

const pe32_header * llvm::object::COFFObjectFile::getPE32Header ( ) const
inline

Definition at line 1090 of file COFF.h.

◆ getPE32PlusHeader()

const pe32plus_header * llvm::object::COFFObjectFile::getPE32PlusHeader ( ) const
inline

Definition at line 1091 of file COFF.h.

◆ getPointerToSymbolTable()

uint32_t llvm::object::COFFObjectFile::getPointerToSymbolTable ( ) const
inline

◆ getRawNumberOfSymbols()

uint32_t llvm::object::COFFObjectFile::getRawNumberOfSymbols ( ) const
inline

◆ getRelocationOffset()

uint64_t COFFObjectFile::getRelocationOffset ( DataRefImpl  Rel) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1266 of file COFFObjectFile.cpp.

◆ getRelocations()

ArrayRef< coff_relocation > COFFObjectFile::getRelocations ( const coff_section Sec) const

◆ getRelocationSymbol()

symbol_iterator COFFObjectFile::getRelocationSymbol ( DataRefImpl  Rel) const
overrideprotectedvirtual

◆ getRelocationType()

uint64_t COFFObjectFile::getRelocationType ( DataRefImpl  Rel) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1285 of file COFFObjectFile.cpp.

◆ getRelocationTypeName() [1/2]

void COFFObjectFile::getRelocationTypeName ( DataRefImpl  Rel,
SmallVectorImpl< char > &  Result 
) const
overrideprotectedvirtual

◆ getRelocationTypeName() [2/2]

StringRef COFFObjectFile::getRelocationTypeName ( uint16_t  Type) const

◆ getRvaAndSizeAsBytes()

Error COFFObjectFile::getRvaAndSizeAsBytes ( uint32_t  RVA,
uint32_t  Size,
ArrayRef< uint8_t > &  Contents,
const char ErrorContext = nullptr 
) const

Given an RVA base and size, returns a valid array of bytes or an error code if the RVA and size is not contained completely within a valid section.

Definition at line 507 of file COFFObjectFile.cpp.

References llvm::object::ObjectFile::base(), llvm::createStringError(), getCOFFSection(), llvm::object::parse_failed, llvm::object::ObjectFile::sections(), Size, and llvm::Error::success().

Referenced by getDebugPDBInfo().

◆ getRvaPtr()

Error COFFObjectFile::getRvaPtr ( uint32_t  Rva,
uintptr_t &  Res,
const char ErrorContext = nullptr 
) const

◆ getSection()

Expected< const coff_section * > COFFObjectFile::getSection ( int32_t  index) const

◆ getSectionAddress()

uint64_t COFFObjectFile::getSectionAddress ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ getSectionAlignment()

uint64_t COFFObjectFile::getSectionAlignment ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ getSectionContents() [1/2]

Error COFFObjectFile::getSectionContents ( const coff_section Sec,
ArrayRef< uint8_t > &  Res 
) const

◆ getSectionContents() [2/2]

Expected< ArrayRef< uint8_t > > COFFObjectFile::getSectionContents ( DataRefImpl  Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 294 of file COFFObjectFile.cpp.

References E, getSectionContents(), and llvm::Ref.

Referenced by getSectionContents().

◆ getSectionID()

unsigned COFFObjectFile::getSectionID ( SectionRef  Sec) const

◆ getSectionIndex()

uint64_t COFFObjectFile::getSectionIndex ( DataRefImpl  Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 285 of file COFFObjectFile.cpp.

◆ getSectionName() [1/2]

Expected< StringRef > COFFObjectFile::getSectionName ( const coff_section Sec) const

◆ getSectionName() [2/2]

Expected< StringRef > COFFObjectFile::getSectionName ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ getSectionSize() [1/2]

uint64_t COFFObjectFile::getSectionSize ( const coff_section Sec) const

◆ getSectionSize() [2/2]

uint64_t COFFObjectFile::getSectionSize ( DataRefImpl  Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 289 of file COFFObjectFile.cpp.

References getSectionSize(), and llvm::Ref.

Referenced by getSectionContents(), and getSectionSize().

◆ getSizeOfOptionalHeader()

uint16_t llvm::object::COFFObjectFile::getSizeOfOptionalHeader ( ) const
inline

◆ getStartAddress()

Expected< uint64_t > COFFObjectFile::getStartAddress ( ) const
overridevirtual

Reimplemented from llvm::object::ObjectFile.

Definition at line 1091 of file COFFObjectFile.cpp.

References llvm::object::pe32_header::AddressOfEntryPoint.

◆ getStringTableSize()

uint32_t llvm::object::COFFObjectFile::getStringTableSize ( ) const
inline

Definition at line 972 of file COFF.h.

◆ getSymbol()

Expected< COFFSymbolRef > llvm::object::COFFObjectFile::getSymbol ( uint32_t  index) const
inline

Definition at line 1096 of file COFF.h.

References llvm::errorCodeToError(), getNumberOfSymbols(), and llvm::object::parse_failed.

Referenced by getAuxSymbol().

◆ getSymbolAddress()

Expected< uint64_t > COFFObjectFile::getSymbolAddress ( DataRefImpl  Symb) const
overrideprotectedvirtual

◆ getSymbolAlignment()

uint32_t COFFObjectFile::getSymbolAlignment ( DataRefImpl  Symb) const
overrideprotectedvirtual

◆ getSymbolAuxData()

ArrayRef< uint8_t > COFFObjectFile::getSymbolAuxData ( COFFSymbolRef  Symbol) const

◆ getSymbolFlags()

Expected< uint32_t > COFFObjectFile::getSymbolFlags ( DataRefImpl  Symb) const
overrideprotectedvirtual

◆ getSymbolIndex()

uint32_t COFFObjectFile::getSymbolIndex ( COFFSymbolRef  Symbol) const

◆ getSymbolName() [1/3]

Expected< StringRef > COFFObjectFile::getSymbolName ( COFFSymbolRef  Symbol) const

Definition at line 1150 of file COFFObjectFile.cpp.

References getSymbolName().

◆ getSymbolName() [2/3]

Expected< StringRef > COFFObjectFile::getSymbolName ( const coff_symbol_generic Symbol) const

Definition at line 1155 of file COFFObjectFile.cpp.

References llvm::COFF::NameSize.

◆ getSymbolName() [3/3]

Expected< StringRef > COFFObjectFile::getSymbolName ( DataRefImpl  Symb) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 151 of file COFFObjectFile.cpp.

References getCOFFSymbol(), getSymbolName(), and llvm::Ref.

Referenced by getSymbolName().

◆ getSymbolSection()

Expected< section_iterator > COFFObjectFile::getSymbolSection ( DataRefImpl  Symb) const
overrideprotectedvirtual

◆ getSymbolSectionID()

unsigned COFFObjectFile::getSymbolSectionID ( SymbolRef  Sym) const

◆ getSymbolTable()

uintptr_t llvm::object::COFFObjectFile::getSymbolTable ( ) const
inline

Definition at line 888 of file COFF.h.

Referenced by getSymbolIndex(), and symbol_begin().

◆ getSymbolTableEntrySize()

size_t llvm::object::COFFObjectFile::getSymbolTableEntrySize ( ) const
inline

Definition at line 1122 of file COFF.h.

References llvm_unreachable.

Referenced by getSymbolAuxData(), and getSymbolIndex().

◆ getSymbolType()

Expected< SymbolRef::Type > COFFObjectFile::getSymbolType ( DataRefImpl  Symb) const
overrideprotectedvirtual

◆ getSymbolValueImpl()

uint64_t COFFObjectFile::getSymbolValueImpl ( DataRefImpl  Symb) const
overrideprotectedvirtual

◆ getTimeDateStamp()

uint32_t llvm::object::COFFObjectFile::getTimeDateStamp ( ) const
inline

◆ getTLSDirectory32()

const coff_tls_directory32 * llvm::object::COFFObjectFile::getTLSDirectory32 ( ) const
inline

Definition at line 1073 of file COFF.h.

◆ getTLSDirectory64()

const coff_tls_directory64 * llvm::object::COFFObjectFile::getTLSDirectory64 ( ) const
inline

Definition at line 1076 of file COFF.h.

◆ getVaPtr()

Error COFFObjectFile::getVaPtr ( uint64_t  VA,
uintptr_t &  Res 
) const

Definition at line 465 of file COFFObjectFile.cpp.

References Addr, assert(), getImageBase(), and getRvaPtr().

◆ import_directories()

iterator_range< import_directory_iterator > COFFObjectFile::import_directories ( ) const

◆ import_directory_begin()

import_directory_iterator COFFObjectFile::import_directory_begin ( ) const

◆ import_directory_end()

import_directory_iterator COFFObjectFile::import_directory_end ( ) const

Definition at line 998 of file COFFObjectFile.cpp.

References ImportDirectoryEntryRef.

Referenced by import_directories(), and import_directory_begin().

◆ is64()

bool llvm::object::COFFObjectFile::is64 ( ) const
inline

◆ is64Bit()

bool llvm::object::COFFObjectFile::is64Bit ( ) const
inlineoverridevirtual

Implements llvm::object::SymbolicFile.

Definition at line 1032 of file COFF.h.

◆ isDebugSection()

bool COFFObjectFile::isDebugSection ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ isRelocatableObject()

bool COFFObjectFile::isRelocatableObject ( ) const
overridevirtual

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

Implements llvm::object::ObjectFile.

Definition at line 1427 of file COFFObjectFile.cpp.

◆ isSectionBSS()

bool COFFObjectFile::isSectionBSS ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ isSectionCompressed()

bool COFFObjectFile::isSectionCompressed ( DataRefImpl  Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 307 of file COFFObjectFile.cpp.

◆ isSectionData()

bool COFFObjectFile::isSectionData ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ isSectionText()

bool COFFObjectFile::isSectionText ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ isSectionVirtual()

bool COFFObjectFile::isSectionVirtual ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ mapDebugSectionName()

StringRef COFFObjectFile::mapDebugSectionName ( StringRef  Name) const
overridevirtual

Maps a debug section name to a standard DWARF section name.

Reimplemented from llvm::object::ObjectFile.

Definition at line 1431 of file COFFObjectFile.cpp.

References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), and Name.

◆ moveRelocationNext()

void COFFObjectFile::moveRelocationNext ( DataRefImpl Rel) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 1261 of file COFFObjectFile.cpp.

References llvm::object::DataRefImpl::p.

◆ moveSectionNext()

void COFFObjectFile::moveSectionNext ( DataRefImpl Sec) const
overrideprotectedvirtual

Implements llvm::object::ObjectFile.

Definition at line 264 of file COFFObjectFile.cpp.

References llvm::Ref.

◆ moveSymbolNext()

void COFFObjectFile::moveSymbolNext ( DataRefImpl Symb) const
overrideprotectedvirtual

◆ section_begin()

section_iterator COFFObjectFile::section_begin ( ) const
overridevirtual

Implements llvm::object::ObjectFile.

Definition at line 1029 of file COFFObjectFile.cpp.

References llvm::object::ObjectFile::SectionRef.

◆ section_end()

section_iterator COFFObjectFile::section_end ( ) const
overridevirtual

◆ section_rel_begin()

relocation_iterator COFFObjectFile::section_rel_begin ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ section_rel_end()

relocation_iterator COFFObjectFile::section_rel_end ( DataRefImpl  Sec) const
overrideprotectedvirtual

◆ symbol_begin()

basic_symbol_iterator COFFObjectFile::symbol_begin ( ) const
overridevirtual

◆ symbol_end()

basic_symbol_iterator COFFObjectFile::symbol_end ( ) const
overridevirtual

Implements llvm::object::SymbolicFile.

Definition at line 982 of file COFFObjectFile.cpp.

References llvm::object::ObjectFile::SymbolRef.

Referenced by getRelocationSymbol().

Friends And Related Function Documentation

◆ ExportDirectoryEntryRef

friend class ExportDirectoryEntryRef
friend

Definition at line 840 of file COFF.h.

Referenced by export_directory_begin(), and export_directory_end().

◆ ImportDirectoryEntryRef

friend class ImportDirectoryEntryRef
friend

Definition at line 839 of file COFF.h.

Referenced by import_directory_begin(), and import_directory_end().


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