LLVM API Documentation
#include <ObjectFile.h>


ObjectFile - 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 272 of file ObjectFile.h.
| ObjectFile::ObjectFile | ( | unsigned int | Type, |
| MemoryBuffer * | source | ||
| ) | [protected] |
Definition at line 26 of file ObjectFile.cpp.
| const uint8_t* llvm::object::ObjectFile::base | ( | ) | const [inline, protected] |
Definition at line 280 of file ObjectFile.h.
References llvm::object::Binary::Data, and llvm::MemoryBuffer::getBufferStart().
Referenced by llvm::object::COFFObjectFile::COFFObjectFile(), llvm::object::ELFObjectFile< ELFT >::ELFObjectFile(), llvm::object::COFFObjectFile::getSectionContents(), llvm::object::COFFObjectFile::getSectionRelBegin(), llvm::object::COFFObjectFile::getSectionRelEnd(), and llvm::object::COFFObjectFile::getSymbolAuxData().
| virtual symbol_iterator llvm::object::ObjectFile::begin_dynamic_symbols | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
| virtual library_iterator llvm::object::ObjectFile::begin_libraries_needed | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
| virtual section_iterator llvm::object::ObjectFile::begin_sections | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::ObjectImageCommon::begin_sections(), and llvm::DWARFContextInMemory::DWARFContextInMemory().
| virtual symbol_iterator llvm::object::ObjectFile::begin_symbols | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::ObjectImageCommon::begin_symbols().
Reimplemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Definition at line 390 of file ObjectFile.h.
References llvm::object::Binary::isObject().
| ObjectFile * llvm::ObjectFile::createCOFFObjectFile | ( | MemoryBuffer * | Object | ) | [static] |
Definition at line 826 of file COFFObjectFile.cpp.
Referenced by createObjectFile().
| ObjectFile * llvm::ObjectFile::createELFObjectFile | ( | MemoryBuffer * | Object | ) | [static] |
Definition at line 22 of file ELFObjectFile.cpp.
References llvm::CountTrailingZeros_64(), llvm::ELF::ELFCLASS32, llvm::ELF::ELFCLASS64, llvm::ELF::ELFDATA2LSB, llvm::ELF::ELFDATA2MSB, llvm::MemoryBuffer::getBufferStart(), llvm::object::getElfArchType(), llvm_unreachable, and llvm::report_fatal_error().
Referenced by llvm::object::createBinary(), and createObjectFile().
| ObjectFile * llvm::object::ObjectFile::createMachOObjectFile | ( | MemoryBuffer * | Object | ) | [static] |
Definition at line 1552 of file MachOObjectFile.cpp.
References llvm::MemoryBuffer::getBuffer(), Magic, llvm::AArch64ISD::Ret, and llvm::StringRef::slice().
Referenced by llvm::object::createBinary(), and createObjectFile().
| ObjectFile * ObjectFile::createObjectFile | ( | StringRef | ObjectPath | ) | [static] |
Create ObjectFile from path.
| ObjectPath | The path to the object file. ObjectPath.isObject must return true. |
Definition at line 67 of file ObjectFile.cpp.
References ARMBuildAttrs::File, llvm::MemoryBuffer::getFile(), and llvm::OwningPtr< T >::take().
Referenced by LLVMCreateObjectFile(), and llvm::ObjectImageCommon::ObjectImageCommon().
| ObjectFile * ObjectFile::createObjectFile | ( | MemoryBuffer * | Object | ) | [static] |
Definition at line 36 of file ObjectFile.cpp.
References llvm::sys::COFF_FileType, createCOFFObjectFile(), createELFObjectFile(), createMachOObjectFile(), llvm::sys::ELF_Core_FileType, llvm::sys::ELF_Executable_FileType, llvm::sys::ELF_Relocatable_FileType, llvm::sys::ELF_SharedObject_FileType, llvm::MemoryBuffer::getBufferSize(), llvm::MemoryBuffer::getBufferStart(), llvm::sys::IdentifyFileType(), llvm_unreachable, llvm::sys::Mach_O_Bundle_FileType, llvm::sys::Mach_O_Core_FileType, llvm::sys::Mach_O_DSYMCompanion_FileType, llvm::sys::Mach_O_DynamicallyLinkedSharedLib_FileType, llvm::sys::Mach_O_DynamicallyLinkedSharedLibStub_FileType, llvm::sys::Mach_O_DynamicLinker_FileType, llvm::sys::Mach_O_Executable_FileType, llvm::sys::Mach_O_FixedVirtualMemorySharedLib_FileType, llvm::sys::Mach_O_Object_FileType, llvm::sys::Mach_O_PreloadExecutable_FileType, and llvm::sys::Unknown_FileType.
| virtual symbol_iterator llvm::object::ObjectFile::end_dynamic_symbols | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
| virtual library_iterator llvm::object::ObjectFile::end_libraries_needed | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
| virtual section_iterator llvm::object::ObjectFile::end_sections | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::DWARFContextInMemory::DWARFContextInMemory(), and llvm::ObjectImageCommon::end_sections().
| virtual symbol_iterator llvm::object::ObjectFile::end_symbols | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::ObjectImageCommon::end_symbols().
| virtual unsigned llvm::object::ObjectFile::getArch | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::ObjectImageCommon::getArch().
| virtual uint8_t llvm::object::ObjectFile::getBytesInAddress | ( | ) | const [pure virtual] |
The number of bytes used to represent an address in this object file format.
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
| virtual StringRef llvm::object::ObjectFile::getFileFormatName | ( | ) | const [pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::DWARFContextInMemory::DWARFContextInMemory().
| virtual error_code llvm::object::ObjectFile::getLibraryNext | ( | DataRefImpl | Lib, |
| LibraryRef & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::LibraryRef::getNext().
| virtual error_code llvm::object::ObjectFile::getLibraryPath | ( | DataRefImpl | Lib, |
| StringRef & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::LibraryRef::getPath().
| virtual StringRef llvm::object::ObjectFile::getLoadName | ( | ) | const [pure virtual] |
For shared objects, returns the name which this object should be loaded from at runtime. This corresponds to DT_SONAME on ELF and LC_ID_DYLIB (install name) on MachO.
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
| virtual error_code llvm::object::ObjectFile::getRelocationAddress | ( | DataRefImpl | Rel, |
| uint64_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getAddress().
| virtual error_code llvm::object::ObjectFile::getRelocationHidden | ( | DataRefImpl | Rel, |
| bool & | Result | ||
| ) | const [inline, protected, virtual] |
Reimplemented in llvm::object::MachOObjectFile.
Definition at line 347 of file ObjectFile.h.
References llvm::object::object_error::success.
Referenced by llvm::object::RelocationRef::getHidden().
| virtual error_code llvm::object::ObjectFile::getRelocationNext | ( | DataRefImpl | Rel, |
| RelocationRef & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getNext().
| virtual error_code llvm::object::ObjectFile::getRelocationOffset | ( | DataRefImpl | Rel, |
| uint64_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getOffset().
| virtual error_code llvm::object::ObjectFile::getRelocationSymbol | ( | DataRefImpl | Rel, |
| SymbolRef & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getSymbol().
| virtual error_code llvm::object::ObjectFile::getRelocationType | ( | DataRefImpl | Rel, |
| uint64_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getType().
| virtual error_code llvm::object::ObjectFile::getRelocationTypeName | ( | DataRefImpl | Rel, |
| SmallVectorImpl< char > & | Result | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getTypeName().
| virtual error_code llvm::object::ObjectFile::getRelocationValueString | ( | DataRefImpl | Rel, |
| SmallVectorImpl< char > & | Result | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::RelocationRef::getValueString().
| virtual error_code llvm::object::ObjectFile::getSectionAddress | ( | DataRefImpl | Sec, |
| uint64_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::getAddress().
| virtual error_code llvm::object::ObjectFile::getSectionAlignment | ( | DataRefImpl | Sec, |
| uint64_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::getAlignment().
| virtual error_code llvm::object::ObjectFile::getSectionContents | ( | DataRefImpl | Sec, |
| StringRef & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::getContents().
| virtual error_code llvm::object::ObjectFile::getSectionName | ( | DataRefImpl | Sec, |
| StringRef & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::getName().
| virtual error_code llvm::object::ObjectFile::getSectionNext | ( | DataRefImpl | Sec, |
| SectionRef & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::getNext().
| virtual relocation_iterator llvm::object::ObjectFile::getSectionRelBegin | ( | DataRefImpl | Sec | ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::begin_relocations().
| virtual relocation_iterator llvm::object::ObjectFile::getSectionRelEnd | ( | DataRefImpl | Sec | ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::end_relocations().
| virtual error_code llvm::object::ObjectFile::getSectionSize | ( | DataRefImpl | Sec, |
| uint64_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::getSize().
| virtual error_code llvm::object::ObjectFile::getSymbolAddress | ( | DataRefImpl | Symb, |
| uint64_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getAddress().
| error_code ObjectFile::getSymbolAlignment | ( | DataRefImpl | Symb, |
| uint32_t & | Res | ||
| ) | const [protected, virtual] |
Reimplemented in llvm::object::ELFObjectFile< ELFT >, and llvm::object::MachOObjectFile.
Definition at line 30 of file ObjectFile.cpp.
References llvm::object::object_error::success.
Referenced by llvm::object::SymbolRef::getAlignment().
| virtual error_code llvm::object::ObjectFile::getSymbolFileOffset | ( | DataRefImpl | Symb, |
| uint64_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getFileOffset().
| virtual error_code llvm::object::ObjectFile::getSymbolFlags | ( | DataRefImpl | Symb, |
| uint32_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getFlags().
| virtual error_code llvm::object::ObjectFile::getSymbolName | ( | DataRefImpl | Symb, |
| StringRef & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getName().
| virtual error_code llvm::object::ObjectFile::getSymbolNext | ( | DataRefImpl | Symb, |
| SymbolRef & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getNext().
| virtual error_code llvm::object::ObjectFile::getSymbolNMTypeChar | ( | DataRefImpl | Symb, |
| char & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getNMTypeChar().
| virtual error_code llvm::object::ObjectFile::getSymbolSection | ( | DataRefImpl | Symb, |
| section_iterator & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getSection().
| virtual error_code llvm::object::ObjectFile::getSymbolSize | ( | DataRefImpl | Symb, |
| uint64_t & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getSize().
| virtual error_code llvm::object::ObjectFile::getSymbolType | ( | DataRefImpl | Symb, |
| SymbolRef::Type & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getType().
| virtual error_code llvm::object::ObjectFile::getSymbolValue | ( | DataRefImpl | Symb, |
| uint64_t & | Val | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SymbolRef::getValue().
| virtual error_code llvm::object::ObjectFile::isSectionBSS | ( | DataRefImpl | Sec, |
| bool & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::isBSS().
| virtual error_code llvm::object::ObjectFile::isSectionData | ( | DataRefImpl | Sec, |
| bool & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::isData().
| virtual error_code llvm::object::ObjectFile::isSectionReadOnlyData | ( | DataRefImpl | Sec, |
| bool & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::isReadOnlyData().
| virtual error_code llvm::object::ObjectFile::isSectionRequiredForExecution | ( | DataRefImpl | Sec, |
| bool & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::isRequiredForExecution().
| virtual error_code llvm::object::ObjectFile::isSectionText | ( | DataRefImpl | Sec, |
| bool & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::isText().
| virtual error_code llvm::object::ObjectFile::isSectionVirtual | ( | DataRefImpl | Sec, |
| bool & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::isVirtual().
| virtual error_code llvm::object::ObjectFile::isSectionZeroInit | ( | DataRefImpl | Sec, |
| bool & | Res | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::isZeroInit().
| virtual error_code llvm::object::ObjectFile::sectionContainsSymbol | ( | DataRefImpl | Sec, |
| DataRefImpl | Symb, | ||
| bool & | Result | ||
| ) | const [protected, pure virtual] |
Implemented in llvm::object::ELFObjectFile< ELFT >, llvm::object::COFFObjectFile, and llvm::object::MachOObjectFile.
Referenced by llvm::object::SectionRef::containsSymbol().
friend class LibraryRef [friend] |
Definition at line 353 of file ObjectFile.h.
friend class RelocationRef [friend] |
Definition at line 332 of file ObjectFile.h.
Referenced by llvm::object::MachOObjectFile::getRelocationNext(), llvm::object::COFFObjectFile::getRelocationNext(), llvm::object::MachOObjectFile::getSectionRelBegin(), llvm::object::COFFObjectFile::getSectionRelBegin(), llvm::object::MachOObjectFile::getSectionRelEnd(), and llvm::object::COFFObjectFile::getSectionRelEnd().
friend class SectionRef [friend] |
Definition at line 309 of file ObjectFile.h.
Referenced by llvm::object::MachOObjectFile::begin_sections(), llvm::object::COFFObjectFile::begin_sections(), llvm::object::MachOObjectFile::end_sections(), llvm::object::COFFObjectFile::end_sections(), llvm::object::MachOObjectFile::getRelocationSection(), llvm::object::MachOObjectFile::getSectionNext(), llvm::object::COFFObjectFile::getSectionNext(), llvm::object::MachOObjectFile::getSymbolSection(), and llvm::object::COFFObjectFile::getSymbolSection().
friend class SymbolRef [friend] |
Definition at line 292 of file ObjectFile.h.
Referenced by llvm::object::MachOObjectFile::begin_symbols(), llvm::object::COFFObjectFile::begin_symbols(), llvm::object::MachOObjectFile::end_symbols(), llvm::object::COFFObjectFile::end_symbols(), llvm::object::MachOObjectFile::getRelocationSymbol(), llvm::object::COFFObjectFile::getRelocationSymbol(), llvm::object::MachOObjectFile::getSymbolNext(), and llvm::object::COFFObjectFile::getSymbolNext().