|
LLVM
3.7.0
|
This class is the base class for all object file types. More...
#include <ObjectFile.h>
Public Types | |
| typedef iterator_range < symbol_iterator > | symbol_iterator_range |
| typedef iterator_range < section_iterator > | section_iterator_range |
Public Types inherited from llvm::object::SymbolicFile | |
| typedef iterator_range < basic_symbol_iterator > | basic_symbol_iterator_range |
Friends | |
| class | SymbolRef |
| class | SectionRef |
| class | RelocationRef |
Additional Inherited Members | |
Protected Types inherited from llvm::object::Binary | |
| enum | { ID_Archive, ID_MachOUniversalBinary, ID_IR, ID_StartObjects, ID_COFF, ID_ELF32L, ID_ELF32B, ID_ELF64L, ID_ELF64B, ID_MachO32L, ID_MachO32B, ID_MachO64L, ID_MachO64B, 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 |
This class is the base class for all object file types.
Concrete instances of this object are created by createObjectFile, which figures out which type to create.
Definition at line 176 of file ObjectFile.h.
Definition at line 252 of file ObjectFile.h.
Definition at line 244 of file ObjectFile.h.
|
protected |
Definition at line 28 of file ObjectFile.cpp.
|
inlineprotected |
Definition at line 184 of file ObjectFile.h.
References llvm::object::Binary::Data, and llvm::MemoryBufferRef::getBufferStart().
Referenced by llvm::object::COFFObjectFile::COFFObjectFile(), llvm::object::COFFObjectFile::getDOSHeader(), llvm::object::COFFObjectFile::getRelocations(), llvm::object::COFFObjectFile::getRvaPtr(), llvm::object::COFFObjectFile::getSymbolAuxData(), llvm::object::COFFObjectFile::section_rel_begin(), llvm::object::COFFObjectFile::section_rel_end(), and llvm::object::COFFObjectFile::toSymb().
Definition at line 288 of file ObjectFile.h.
References llvm::object::Binary::isObject().
|
static |
Definition at line 1375 of file COFFObjectFile.cpp.
References llvm::MipsISD::Ret.
Referenced by createObjectFile().
|
static |
Definition at line 24 of file ELFObjectFile.cpp.
References llvm::countTrailingZeros(), llvm::ELF::ELFCLASS32, llvm::ELF::ELFCLASS64, llvm::ELF::ELFDATA2LSB, llvm::ELF::ELFDATA2MSB, llvm::MemoryBufferRef::getBuffer(), llvm::MemoryBufferRef::getBufferStart(), llvm::object::getElfArchType(), and llvm::object::parse_failed.
Referenced by createObjectFile().
|
static |
Definition at line 2299 of file MachOObjectFile.cpp.
References llvm::MemoryBufferRef::getBuffer(), Magic, llvm::object::parse_failed, llvm::MipsISD::Ret, and llvm::StringRef::slice().
Referenced by createObjectFile(), and llvm::object::MachOUniversalBinary::ObjectForArch::getAsObjectFile().
|
static |
Create ObjectFile from path.
| ObjectPath | The path to the object file. ObjectPath.isObject must return true. |
Definition at line 102 of file ObjectFile.cpp.
References llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), and llvm::MemoryBuffer::getFile().
Referenced by createObjectFile(), llvm::object::SymbolicFile::createSymbolicFile(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), llvm::MCJIT::generateCodeForModule(), LLVMCreateObjectFile(), and llvm::orc::SimpleCompiler::operator()().
|
static |
Definition at line 63 of file ObjectFile.cpp.
References llvm::sys::fs::file_magic::archive, llvm::sys::fs::file_magic::bitcode, llvm::sys::fs::file_magic::coff_import_library, llvm::sys::fs::file_magic::coff_object, createCOFFObjectFile(), createELFObjectFile(), createMachOObjectFile(), llvm::object::Binary::Data, llvm::sys::fs::file_magic::elf, llvm::sys::fs::file_magic::elf_core, llvm::sys::fs::file_magic::elf_executable, llvm::sys::fs::file_magic::elf_relocatable, llvm::sys::fs::file_magic::elf_shared_object, llvm::MemoryBufferRef::getBuffer(), llvm::sys::fs::identify_magic(), llvm::object::invalid_file_type, llvm_unreachable, llvm::sys::fs::file_magic::macho_bundle, llvm::sys::fs::file_magic::macho_core, llvm::sys::fs::file_magic::macho_dsym_companion, llvm::sys::fs::file_magic::macho_dynamic_linker, llvm::sys::fs::file_magic::macho_dynamically_linked_shared_lib, llvm::sys::fs::file_magic::macho_dynamically_linked_shared_lib_stub, llvm::sys::fs::file_magic::macho_executable, llvm::sys::fs::file_magic::macho_fixed_virtual_memory_shared_lib, llvm::sys::fs::file_magic::macho_kext_bundle, llvm::sys::fs::file_magic::macho_object, llvm::sys::fs::file_magic::macho_preload_executable, llvm::sys::fs::file_magic::macho_universal_binary, llvm::sys::fs::file_magic::pecoff_executable, llvm::sys::fs::file_magic::unknown, and llvm::sys::fs::file_magic::windows_resource.
|
inlinestatic |
Definition at line 283 of file ObjectFile.h.
References createObjectFile(), and llvm::sys::fs::file_magic::unknown.
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::RuntimeDyld::loadObject(), and llvm::RuntimeDyldImpl::loadObjectImpl().
|
pure virtual |
The number of bytes used to represent an address in this object file format.
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
|
inline |
Definition at line 239 of file ObjectFile.h.
References getCommonSymbolSizeImpl(), llvm::object::SymbolicFile::getSymbolFlags(), and llvm::object::BasicSymbolRef::SF_Common.
Referenced by llvm::object::SymbolRef::getCommonSize(), and getSymbolValue().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by getCommonSymbolSize().
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
|
inlinevirtual |
Returns platform-specific object flags, if any.
Reimplemented in llvm::object::ELFObjectFile< ELFT >.
Definition at line 265 of file ObjectFile.h.
References llvm::object::invalid_file_type.
|
protectedvirtual |
Reimplemented in llvm::object::ELFObjectFile< ELFT >.
Definition at line 58 of file ObjectFile.cpp.
References SectionRef.
Referenced by llvm::object::SectionRef::getRelocatedSection().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::RelocationRef::getOffset().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::RelocationRef::getSymbol().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::RelocationRef::getType().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::RelocationRef::getTypeName().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getAddress().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getAlignment().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getContents().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getName().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::getSize().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getAddress().
|
protectedvirtual |
Reimplemented in llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Definition at line 56 of file ObjectFile.cpp.
Referenced by llvm::object::SymbolRef::getAlignment().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getName(), and printSymbolName().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getSection().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SymbolRef::getType().
|
protected |
Definition at line 38 of file ObjectFile.cpp.
References getCommonSymbolSize(), llvm::object::SymbolicFile::getSymbolFlags(), getSymbolValueImpl(), llvm::object::BasicSymbolRef::SF_Common, and llvm::object::BasicSymbolRef::SF_Undefined.
Referenced by llvm::object::MachOObjectFile::getSymbolAddress(), llvm::object::COFFObjectFile::getSymbolAddress(), and llvm::object::SymbolRef::getValue().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by getSymbolValue().
|
pure virtual |
True if this is a relocatable object (.o/.obj).
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isBSS().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isData().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isText().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::isVirtual().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::RelocationRef::moveNext().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::moveNext().
|
overrideprotectedvirtual |
Implements llvm::object::SymbolicFile.
Definition at line 47 of file ObjectFile.cpp.
References llvm::ErrorOr< T >::getError(), and getSymbolName().
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::RuntimeDyldImpl::computeSectionStubBufSize(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::RuntimeDyldImpl::loadObjectImpl(), and sections().
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Referenced by llvm::RuntimeDyldImpl::computeSectionStubBufSize(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), llvm::object::SectionRef::containsSymbol(), llvm::DWARFContextInMemory::DWARFContextInMemory(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::RuntimeDyldImpl::loadObjectImpl(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), and sections().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::relocation_begin().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, and llvm::object::ELFObjectFile< ELFT >.
Referenced by llvm::object::SectionRef::relocation_end().
|
inline |
Definition at line 253 of file ObjectFile.h.
References section_begin(), and section_end().
Referenced by llvm::object::computeSymbolSizes(), llvm::DWARFContextInMemory::DWARFContextInMemory(), llvm::RuntimeDyldMachOCRTPBase< Impl >::finalizeLoad(), llvm::object::IRObjectFile::findBitcodeInObject(), llvm::object::COFFObjectFile::getRvaPtr(), and lookupSection().
|
inline |
Definition at line 245 of file ObjectFile.h.
References llvm::object::SymbolicFile::symbol_begin(), and llvm::object::SymbolicFile::symbol_end().
|
friend |
Definition at line 228 of file ObjectFile.h.
Referenced by llvm::object::COFFObjectFile::section_rel_begin(), and llvm::object::COFFObjectFile::section_rel_end().
|
friend |
Definition at line 209 of file ObjectFile.h.
Referenced by llvm::object::MachOObjectFile::getAnyRelocationSection(), getRelocatedSection(), llvm::object::MachOObjectFile::getRelocationRelocatedSection(), llvm::object::MachOObjectFile::getSymbolSection(), llvm::object::COFFObjectFile::getSymbolSection(), llvm::object::MachOObjectFile::section_begin(), llvm::object::COFFObjectFile::section_begin(), llvm::object::MachOObjectFile::section_end(), and llvm::object::COFFObjectFile::section_end().
|
friend |
Definition at line 196 of file ObjectFile.h.
Referenced by llvm::object::MachOObjectFile::getRelocationSymbol(), llvm::object::COFFObjectFile::getRelocationSymbol(), llvm::object::MachOObjectFile::getSymbolByIndex(), llvm::object::COFFObjectFile::symbol_begin_impl(), llvm::object::MachOObjectFile::symbol_end_impl(), and llvm::object::COFFObjectFile::symbol_end_impl().
1.8.6