LLVM: llvm::object::Archive Class Reference (original) (raw)

#include "[llvm/Object/Archive.h](include%5F2llvm%5F2Object%5F2Archive%5F8h%5Fsource.html)"

Public Member Functions
Archive (MemoryBufferRef Source, Error &Err)
Archive (Archive const &)=delete
Archive & operator= (Archive const &)=delete
Kind kind () const
bool isThin () const
child_iterator child_begin (Error &Err, bool SkipInternal=true) const
child_iterator child_end () const
iterator_range< child_iterator > children (Error &Err, bool SkipInternal=true) const
symbol_iterator symbol_begin () const
symbol_iterator symbol_end () const
iterator_range< symbol_iterator > symbols () const
Expected< iterator_range< symbol_iterator > > ec_symbols () const
Expected< std::optional< Child > > findSym (StringRef name) const
virtual bool isEmpty () const
bool hasSymbolTable () const
StringRef getSymbolTable () const
StringRef getStringTable () const
uint32_t getNumberOfSymbols () const
uint32_t getNumberOfECSymbols () const
virtual uint64_t getFirstChildOffset () const
std::vector< std::unique_ptr< MemoryBuffer > > takeThinBuffers ()
std::unique_ptr< AbstractArchiveMemberHeader > createArchiveMemberHeader (const char *RawHeaderPtr, uint64_t Size, Error *Err) 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
bool isDXContainer () const
Triple::ObjectFormatType getTripleObjectFormat () const
Static Public Member Functions
static Expected< std::unique_ptr< Archive > > create (MemoryBufferRef Source)
static object::Archive::Kind getDefaultKind ()
static object::Archive::Kind getDefaultKindForTriple (const Triple &T)
static bool classof (Binary const *v)
Static Public Member Functions inherited from llvm::object::Binary
static Error checkOffset (MemoryBufferRef M, uintptr_t Addr, const uint64_t Size)
Static Public Attributes
static const uint64_t MaxMemberSize = 9999999999
Size field is 10 decimal digits long.
Protected Attributes
StringRef SymbolTable
StringRef ECSymbolTable
StringRef StringTable
Protected Attributes inherited from llvm::object::Binary
MemoryBufferRef Data
Additional Inherited Members
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)

Definition at line 159 of file Archive.h.

child_iterator

Kind

Enumerator
K_GNU
K_GNU64
K_BSD
K_DARWIN
K_DARWIN64
K_COFF
K_AIXBIG

Definition at line 344 of file Archive.h.

Archive() [1/2]

Definition at line 707 of file Archive.cpp.

References llvm::object::ArchiveMagic, llvm::object::BigArchiveMagic, llvm::object::Binary::Binary(), llvm::CallingConv::C, child_begin(), child_end(), llvm::object::Binary::Data, ECSymbolTable, llvm::errorCodeToError(), llvm::Expected< T >::get(), I, llvm::object::Binary::ID_Archive, llvm::Increment, llvm::object::invalid_file_type, K_AIXBIG, K_BSD, K_COFF, K_DARWIN64, K_GNU, K_GNU64, llvm::make_error(), llvm::object::parse_failed, setFirstRegular(), llvm::StringRef::starts_with(), StringTable, llvm::Error::success(), SymbolTable, llvm::Expected< T >::takeError(), and llvm::object::ThinArchiveMagic.

Referenced by Archive(), llvm::object::BigArchive::BigArchive(), operator=(), and llvm::object::Archive::Symbol::Symbol().

Archive() [2/2]

child_begin()

Archive::child_iterator Archive::child_begin ( Error & Err,
bool SkipInternal = true ) const

child_end()

Archive::child_iterator Archive::child_end ( ) const

children()

classof()

create()

createArchiveMemberHeader()

ec_symbols()

findSym()

getArchiveMagicLen()

uint64_t Archive::getArchiveMagicLen ( ) const protected

getDefaultKind()

object::Archive::Kind Archive::getDefaultKind ( ) static

getDefaultKindForTriple()

getFirstChildOffset()

virtual uint64_t llvm::object::Archive::getFirstChildOffset ( ) const inlinevirtual

getNumberOfECSymbols()

uint32_t Archive::getNumberOfECSymbols ( ) const

getNumberOfSymbols()

uint32_t Archive::getNumberOfSymbols ( ) const

Definition at line 1238 of file Archive.cpp.

References llvm::StringRef::begin(), getSymbolTable(), hasSymbolTable(), K_AIXBIG, K_BSD, K_DARWIN64, K_GNU, K_GNU64, kind(), llvm::support::endian::read32be(), llvm::support::endian::read32le(), llvm::support::endian::read64be(), and llvm::support::endian::read64le().

Referenced by ec_symbols(), and symbol_end().

getStringTable()

StringRef llvm::object::Archive::getStringTable ( ) const inline

getSymbolTable()

StringRef llvm::object::Archive::getSymbolTable ( ) const inline

hasSymbolTable()

bool Archive::hasSymbolTable ( ) const

isEmpty()

bool Archive::isEmpty ( ) const virtual

isThin()

bool llvm::object::Archive::isThin ( ) const inline

kind()

Kind llvm::object::Archive::kind ( ) const inline

operator=()

setFirstRegular()

void Archive::setFirstRegular ( const Child & C) protected

symbol_begin()

Definition at line 1131 of file Archive.cpp.

References llvm::StringRef::begin(), getStringTable(), getSymbolTable(), hasSymbolTable(), K_AIXBIG, K_BSD, K_DARWIN64, K_GNU, K_GNU64, kind(), llvm::support::endian::read32be(), llvm::support::endian::read32le(), llvm::support::endian::read64be(), and llvm::support::endian::read64le().

Referenced by findSym(), and symbols().

symbol_end()

symbols()

takeThinBuffers()

std::vector< std::unique_ptr< MemoryBuffer > > llvm::object::Archive::takeThinBuffers ( ) inline

ECSymbolTable

StringRef llvm::object::Archive::ECSymbolTable protected

MaxMemberSize

StringTable

SymbolTable


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