|
LLVM
4.0.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_COFFImportFile, ID_IR, ID_ModuleSummaryIndex, ID_StartObjects, ID_COFF, ID_ELF32L, ID_ELF32B, ID_ELF64L, ID_ELF64B, ID_MachO32L, ID_MachO32B, ID_MachO64L, ID_MachO64B, 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 |
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 178 of file ObjectFile.h.
Definition at line 256 of file ObjectFile.h.
Definition at line 248 of file ObjectFile.h.
|
protected |
Definition at line 29 of file ObjectFile.cpp.
|
inlineprotected |
Definition at line 186 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::getRvaAndSizeAsBytes(), 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 293 of file ObjectFile.h.
References llvm::object::Binary::isObject().
|
static |
Definition at line 1541 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 3583 of file MachOObjectFile.cpp.
References llvm::object::MachOObjectFile::create(), llvm::MemoryBufferRef::getBuffer(), llvm::object::invalid_file_type, Magic, 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 116 of file ObjectFile.cpp.
References llvm::errorCodeToError(), llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), and llvm::MemoryBuffer::getFile().
Referenced by createObjectFile(), llvm::object::SymbolicFile::createSymbolicFile(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), llvm::object::ModuleSummaryIndexObjectFile::findBitcodeInMemBuffer(), llvm::MCJIT::generateCodeForModule(), LLVMCreateObjectFile(), and llvm::orc::SimpleCompiler::operator()().
|
static |
Definition at line 74 of file ObjectFile.cpp.
References llvm::sys::fs::file_magic::archive, llvm::sys::fs::file_magic::bitcode, llvm::sys::fs::file_magic::coff_cl_gl_object, llvm::sys::fs::file_magic::coff_import_library, llvm::sys::fs::file_magic::coff_object, createCOFFObjectFile(), createELFObjectFile(), createMachOObjectFile(), createWasmObjectFile(), 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::errorCodeToError(), llvm::errorOrToExpected(), 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, llvm::sys::fs::file_magic::wasm_object, and llvm::sys::fs::file_magic::windows_resource.
|
inlinestatic |
Definition at line 288 of file ObjectFile.h.
References createObjectFile(), and llvm::sys::fs::file_magic::unknown.
|
static |
Definition at line 18 of file WasmObjectFile.cpp.
References llvm::Error::success().
Referenced by createObjectFile().
|
pure virtual |
|
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 >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::symbolize::SymbolizableObjectFile::create().
|
inline |
Definition at line 243 of file ObjectFile.h.
References assert(), 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::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by getCommonSymbolSize().
|
pure virtual |
|
pure virtual |
|
inlinevirtual |
Returns platform-specific object flags, if any.
Reimplemented in llvm::object::ELFObjectFile< ELFT >.
Definition at line 270 of file ObjectFile.h.
References llvm::object::invalid_file_type.
Referenced by llvm::object::ELFObjectFileBase::getFeatures(), and llvm::RuntimeDyldELF::processRelocationRef().
|
protectedvirtual |
Reimplemented in llvm::object::ELFObjectFile< ELFT >, and llvm::object::WasmObjectFile.
Definition at line 69 of file ObjectFile.cpp.
References SectionRef.
Referenced by llvm::object::SectionRef::getRelocatedSection().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::RelocationRef::getOffset().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::RelocationRef::getSymbol().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::RelocationRef::getType().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::RelocationRef::getTypeName().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::getAddress().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::getAlignment().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::getContents().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::getName(), and isSectionBitcode().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::getSize().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SymbolRef::getAddress().
|
protectedvirtual |
Reimplemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Definition at line 60 of file ObjectFile.cpp.
Referenced by llvm::object::SymbolRef::getAlignment().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SymbolRef::getName(), and printSymbolName().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SymbolRef::getSection().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SymbolRef::getType().
|
protected |
Definition at line 42 of file ObjectFile.cpp.
References fuzzer::Flags, 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, llvm::object::ELFObjectFile< ELFT >, and llvm::object::WasmObjectFile.
Referenced by getSymbolValue().
|
pure virtual |
True if this is a relocatable object (.o/.obj).
Implemented in llvm::object::COFFObjectFile, llvm::object::MachOObjectFile, llvm::object::ELFObjectFile< ELFT >, and llvm::object::WasmObjectFile.
|
protectedvirtual |
Reimplemented in llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Definition at line 62 of file ObjectFile.cpp.
References getSectionName().
Referenced by llvm::object::SectionRef::isBitcode().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::isBSS().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::isCompressed().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::isData().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::isText().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::isVirtual().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::RelocationRef::moveNext().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::moveNext().
|
overrideprotectedvirtual |
Implements llvm::object::SymbolicFile.
Reimplemented in llvm::object::WasmObjectFile.
Definition at line 51 of file ObjectFile.cpp.
References llvm::errorToErrorCode(), getSymbolName(), and llvm::Expected< T >::takeError().
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::RuntimeDyldImpl::computeSectionStubBufSize(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), llvm::RuntimeDyldELF::finalizeLoad(), LLVMGetSections(), llvm::RuntimeDyldImpl::loadObjectImpl(), and sections().
|
pure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::RuntimeDyldImpl::computeSectionStubBufSize(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), llvm::DWARFContextInMemory::DWARFContextInMemory(), llvm::RuntimeDyldELF::finalizeLoad(), LLVMIsSectionIteratorAtEnd(), llvm::RuntimeDyldImpl::loadObjectImpl(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), and sections().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::relocation_begin().
|
protectedpure virtual |
Implemented in llvm::object::COFFObjectFile, llvm::object::ELFObjectFile< ELFT >, llvm::object::MachOObjectFile, and llvm::object::WasmObjectFile.
Referenced by llvm::object::SectionRef::relocation_end().
|
inline |
Definition at line 257 of file ObjectFile.h.
References section_begin(), and section_end().
Referenced by llvm::object::computeSymbolSizes(), llvm::symbolize::SymbolizableObjectFile::create(), llvm::DWARFContextInMemory::DWARFContextInMemory(), llvm::RuntimeDyldMachOCRTPBase< Impl >::finalizeLoad(), llvm::object::IRObjectFile::findBitcodeInObject(), llvm::object::ModuleSummaryIndexObjectFile::findBitcodeInObject(), llvm::object::COFFObjectFile::getRvaAndSizeAsBytes(), llvm::object::COFFObjectFile::getRvaPtr(), and lookupSection().
|
inline |
Definition at line 249 of file ObjectFile.h.
References llvm::object::SymbolicFile::symbol_begin(), and llvm::object::SymbolicFile::symbol_end().
Referenced by llvm::object::MachOObjectFile::checkSymbolTable().
|
friend |
Definition at line 232 of file ObjectFile.h.
Referenced by llvm::object::COFFObjectFile::section_rel_begin(), and llvm::object::COFFObjectFile::section_rel_end().
|
friend |
Definition at line 211 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::WasmObjectFile::section_begin(), llvm::object::MachOObjectFile::section_begin(), llvm::object::COFFObjectFile::section_begin(), llvm::object::WasmObjectFile::section_end(), llvm::object::MachOObjectFile::section_end(), and llvm::object::COFFObjectFile::section_end().
|
friend |
Definition at line 198 of file ObjectFile.h.
Referenced by llvm::object::MachOObjectFile::getRelocationSymbol(), llvm::object::COFFObjectFile::getRelocationSymbol(), llvm::object::MachOObjectFile::getSymbolByIndex(), llvm::object::MachOObjectFile::symbol_begin(), llvm::object::COFFObjectFile::symbol_begin(), llvm::object::MachOObjectFile::symbol_end(), and llvm::object::COFFObjectFile::symbol_end().
1.8.6