LLVM 22.0.0git
|
MachOBindEntry encapsulates the current state in the decompression of binding opcodes. More...
#include "llvm/Object/MachO.h"
Public Types | |
enum class | Kind { Regular , Lazy , Weak } |
Public Member Functions | |
LLVM_ABI | MachOBindEntry (Error *Err, const MachOObjectFile *O, ArrayRef< uint8_t > Opcodes, bool is64Bit, MachOBindEntry::Kind) |
LLVM_ABI int32_t | segmentIndex () const |
LLVM_ABI uint64_t | segmentOffset () const |
LLVM_ABI StringRef | typeName () const |
LLVM_ABI StringRef | symbolName () const |
LLVM_ABI uint32_t | flags () const |
LLVM_ABI int64_t | addend () const |
LLVM_ABI int | ordinal () const |
LLVM_ABI StringRef | segmentName () const |
LLVM_ABI StringRef | sectionName () const |
LLVM_ABI uint64_t | address () const |
LLVM_ABI bool | operator== (const MachOBindEntry &) const |
LLVM_ABI 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 = Error::success(); 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 3818 of file MachOObjectFile.cpp.
References is64Bit(), and MachOObjectFile.
Referenced by operator==().
int64_t MachOBindEntry::addend | ( | ) | const |
Definition at line 4319 of file MachOObjectFile.cpp.
uint64_t MachOBindEntry::address | ( | ) | const |
Definition at line 4339 of file MachOObjectFile.cpp.
uint32_t MachOBindEntry::flags | ( | ) | const |
Definition at line 4321 of file MachOObjectFile.cpp.
void MachOBindEntry::moveNext | ( | ) |
Definition at line 3834 of file MachOObjectFile.cpp.
References 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::Count, llvm::dbgs(), DEBUG_WITH_TYPE, error, llvm::format(), Lazy, malformedError(), P, llvm::Twine::utohexstr(), and Weak.
bool MachOBindEntry::operator== | ( | const MachOBindEntry & | Other | ) | const |
Definition at line 4343 of file MachOObjectFile.cpp.
References assert(), MachOBindEntry(), and llvm::Other.
int MachOBindEntry::ordinal | ( | ) | const |
Definition at line 4323 of file MachOObjectFile.cpp.
StringRef MachOBindEntry::sectionName | ( | ) | const |
Definition at line 4333 of file MachOObjectFile.cpp.
int32_t MachOBindEntry::segmentIndex | ( | ) | const |
Definition at line 4301 of file MachOObjectFile.cpp.
StringRef MachOBindEntry::segmentName | ( | ) | const |
Definition at line 4327 of file MachOObjectFile.cpp.
uint64_t MachOBindEntry::segmentOffset | ( | ) | const |
Definition at line 4303 of file MachOObjectFile.cpp.
StringRef MachOBindEntry::symbolName | ( | ) | const |
Definition at line 4317 of file MachOObjectFile.cpp.
StringRef MachOBindEntry::typeName | ( | ) | const |
Definition at line 4305 of file MachOObjectFile.cpp.
References llvm::MachO::BIND_TYPE_POINTER, llvm::MachO::BIND_TYPE_TEXT_ABSOLUTE32, and llvm::MachO::BIND_TYPE_TEXT_PCREL32.
|
friend |
Definition at line 240 of file MachO.h.
References error, and MachOObjectFile.
Referenced by MachOBindEntry(), and MachOObjectFile.