LLVM
8.0.1
|
MachOBindEntry encapsulates the current state in the decompression of binding opcodes. More...
#include "llvm/Object/MachO.h"
Public Types | |
enum | Kind { Kind::Regular, Kind::Lazy, Kind::Weak } |
Public Member Functions | |
MachOBindEntry (Error *Err, const MachOObjectFile *O, ArrayRef< uint8_t > Opcodes, bool is64Bit, MachOBindEntry::Kind) | |
int32_t | segmentIndex () const |
uint64_t | segmentOffset () const |
StringRef | typeName () const |
StringRef | symbolName () const |
uint32_t | flags () const |
int64_t | addend () const |
int | ordinal () const |
StringRef | segmentName () const |
StringRef | sectionName () const |
uint64_t | address () const |
bool | operator== (const MachOBindEntry &) const |
void | moveNext () |
Friends | |
class | MachOObjectFile |
MachOBindEntry encapsulates the current state in the decompression of binding opcodes.
This allows you to iterate through the compressed table of bindings using: Error Err; for (const llvm::object::MachOBindEntry &Entry : Obj->bindTable(&Err)) { } if (Err) { report error ...
|
strong |
MachOBindEntry::MachOBindEntry | ( | Error * | Err, |
const MachOObjectFile * | O, | ||
ArrayRef< uint8_t > | Opcodes, | ||
bool | is64Bit, | ||
MachOBindEntry::Kind | BK | ||
) |
Definition at line 3419 of file MachOObjectFile.cpp.
References llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), and moveNext().
int64_t MachOBindEntry::addend | ( | ) | const |
Definition at line 3933 of file MachOObjectFile.cpp.
uint64_t MachOBindEntry::address | ( | ) | const |
Definition at line 3953 of file MachOObjectFile.cpp.
References llvm::object::MachOObjectFile::BindRebaseAddress(), and SegmentOffset().
uint32_t MachOBindEntry::flags | ( | ) | const |
Definition at line 3935 of file MachOObjectFile.cpp.
void MachOBindEntry::moveNext | ( | ) |
Definition at line 3435 of file MachOObjectFile.cpp.
References llvm::ArrayRef< T >::begin(), llvm::MachO::BIND_IMMEDIATE_MASK, llvm::MachO::BIND_OPCODE_ADD_ADDR_ULEB, llvm::MachO::BIND_OPCODE_DO_BIND, llvm::MachO::BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED, llvm::MachO::BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB, llvm::MachO::BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB, llvm::MachO::BIND_OPCODE_DONE, llvm::MachO::BIND_OPCODE_MASK, llvm::MachO::BIND_OPCODE_SET_ADDEND_SLEB, llvm::MachO::BIND_OPCODE_SET_DYLIB_ORDINAL_IMM, llvm::MachO::BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB, llvm::MachO::BIND_OPCODE_SET_DYLIB_SPECIAL_IMM, llvm::MachO::BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB, llvm::MachO::BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM, llvm::MachO::BIND_OPCODE_SET_TYPE_IMM, llvm::MachO::BIND_SPECIAL_DYLIB_FLAT_LOOKUP, llvm::MachO::BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION, llvm::MachO::BIND_TYPE_TEXT_PCREL32, llvm::object::MachOObjectFile::BindEntryCheckCountAndSkip(), llvm::object::MachOObjectFile::BindEntryCheckSegAndOffset(), llvm::dbgs(), DEBUG_WITH_TYPE, llvm::decodeSLEB128(), llvm::decodeULEB128(), llvm::ArrayRef< T >::end(), error, llvm::format(), llvm::object::MachOObjectFile::getLibraryCount(), Lazy, malformedError(), P, readULEB128(), SegmentOffset(), llvm::AMDGPU::HSAMD::Kernel::Key::SymbolName, llvm::Twine::utohexstr(), and Weak.
Referenced by MachOBindEntry().
bool MachOBindEntry::operator== | ( | const MachOBindEntry & | Other | ) | const |
Definition at line 3957 of file MachOObjectFile.cpp.
References assert(), and llvm::ArrayRef< T >::data().
int MachOBindEntry::ordinal | ( | ) | const |
Definition at line 3937 of file MachOObjectFile.cpp.
StringRef MachOBindEntry::sectionName | ( | ) | const |
Definition at line 3947 of file MachOObjectFile.cpp.
References llvm::object::MachOObjectFile::BindRebaseSectionName(), and SegmentOffset().
int32_t MachOBindEntry::segmentIndex | ( | ) | const |
Definition at line 3915 of file MachOObjectFile.cpp.
StringRef MachOBindEntry::segmentName | ( | ) | const |
Definition at line 3941 of file MachOObjectFile.cpp.
References llvm::object::MachOObjectFile::BindRebaseSegmentName().
uint64_t MachOBindEntry::segmentOffset | ( | ) | const |
Definition at line 3917 of file MachOObjectFile.cpp.
References SegmentOffset().
StringRef MachOBindEntry::symbolName | ( | ) | const |
Definition at line 3931 of file MachOObjectFile.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::SymbolName.
StringRef MachOBindEntry::typeName | ( | ) | const |
Definition at line 3919 of file MachOObjectFile.cpp.
References llvm::MachO::BIND_TYPE_POINTER, llvm::MachO::BIND_TYPE_TEXT_ABSOLUTE32, and llvm::MachO::BIND_TYPE_TEXT_PCREL32.
|
friend |