LLVM: llvm::objcopy:🧝:Object Class Reference (original) (raw)

#include "[ObjCopy/ELF/ELFObject.h](ELFObject%5F8h%5Fsource.html)"

Public Types
template<class T>
using ConstRange
Public Member Functions
SectionTableRef sections () const
iterator_range< filter_iterator< pointee_iterator< std::vector< SecPtr >::const_iterator >, decltype(&sectionIsAlloc)> > allocSections () const
const auto & getUpdatedSections () const
Error updateSection (StringRef Name, ArrayRef< uint8_t > Data)
Error updateSectionData (SectionBase &S, ArrayRef< uint8_t > Data)
SectionBase * findSection (StringRef Name)
SectionTableRef removedSections ()
ConstRange< Segment > segments () const
Error removeSections (bool AllowBrokenLinks, std::function< bool(const SectionBase &)> ToRemove)
Error compressOrDecompressSections (const CommonConfig &Config)
Error replaceSections (const DenseMap< SectionBase *, SectionBase * > &FromTo)
Error removeSymbols (function_ref< bool(const Symbol &)> ToRemove)
template<class T, class... Ts>
T & addSection (Ts &&...Args)
Error addNewSymbolTable ()
Segment & addSegment (ArrayRef< uint8_t > Data)
bool isRelocatable () const
Public Attributes
Segment ElfHdrSegment
Segment ProgramHdrSegment
bool Is64Bits
uint8_t OSABI
uint8_t ABIVersion
uint64_t Entry
uint64_t SHOff
uint32_t Type
uint32_t Machine
uint32_t Version
uint32_t Flags
bool HadShdrs = true
bool MustBeRelocatable = false
StringTableSection * SectionNames = nullptr
SymbolTableSection * SymbolTable = nullptr
SectionIndexSection * SectionIndexTable = nullptr
bool IsMips64EL = false

Definition at line 1158 of file ELFObject.h.

ConstRange

Initial value:

A range adaptor for a pair of iterators.

An iterator type that allows iterating over the pointees via some other iterator.

Definition at line 1176 of file ELFObject.h.

addNewSymbolTable()

Error Object::addNewSymbolTable ( )

Definition at line 2293 of file ELFObject.cpp.

References addSection(), llvm::objcopy:🧝:SymbolTableSection::addSymbol(), assert(), llvm::objcopy:🧝:SectionBase::Index, llvm::objcopy:🧝:SymbolTableSection::initialize(), llvm::objcopy:🧝:SectionBase::Link, llvm::objcopy:🧝:SectionBase::Name, SectionNames, sections(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHT_STRTAB, llvm::Error::success(), and SymbolTable.

addSection()

template<class T, class... Ts>

T & llvm::objcopy:🧝:Object::addSection ( Ts &&... Args) inline

addSegment()

allocSections()

compressOrDecompressSections()

Definition at line 212 of file ELFObjcopy.cpp.

References addSection(), llvm::objcopy::CommonConfig::CompressionType, llvm::objcopy::CommonConfig::compressSections, llvm::createStringError(), llvm::objcopy::CommonConfig::DecompressDebugSections, llvm::dyn_cast(), llvm::invalid_argument, Is64Bits, llvm::None, replaceSections(), sections(), llvm::ELF::SHF_ALLOC, llvm::StringRef::starts_with(), and T.

findSection()

getUpdatedSections()

const auto & llvm::objcopy:🧝:Object::getUpdatedSections ( ) const inline

isRelocatable()

bool llvm::objcopy:🧝:Object::isRelocatable ( ) const inline

removedSections()

removeSections()

Definition at line 2200 of file ELFObject.cpp.

References llvm::all_of(), llvm::cast(), llvm::dyn_cast(), llvm::isa(), llvm::make_range(), llvm::objcopy:🧝:GroupSection::members(), llvm::objcopy:🧝:Segment::removeSection(), SectionIndexTable, SectionNames, llvm::ELF::SHT_GROUP, llvm::Error::success(), SymbolTable, and ToRemove.

Referenced by replaceSections().

removeSymbols()

replaceSections()

Definition at line 2261 of file ELFObject.cpp.

References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), I, llvm::is_sorted(), removeSections(), llvm::sort(), and llvm::Error::success().

Referenced by compressOrDecompressSections().

sections()

segments()

ConstRange< Segment > llvm::objcopy:🧝:Object::segments ( ) const inline

updateSection()

updateSectionData()

ABIVersion

uint8_t llvm::objcopy:🧝:Object::ABIVersion

ElfHdrSegment

Segment llvm::objcopy:🧝:Object::ElfHdrSegment

Entry

uint64_t llvm::objcopy:🧝:Object::Entry

Flags

uint32_t llvm::objcopy:🧝:Object::Flags

HadShdrs

bool llvm::objcopy:🧝:Object::HadShdrs = true

Is64Bits

bool llvm::objcopy:🧝:Object::Is64Bits

IsMips64EL

bool llvm::objcopy:🧝:Object::IsMips64EL = false

Machine

uint32_t llvm::objcopy:🧝:Object::Machine

MustBeRelocatable

bool llvm::objcopy:🧝:Object::MustBeRelocatable = false

OSABI

uint8_t llvm::objcopy:🧝:Object::OSABI

ProgramHdrSegment

Segment llvm::objcopy:🧝:Object::ProgramHdrSegment

SectionIndexTable

SectionNames

SHOff

uint64_t llvm::objcopy:🧝:Object::SHOff

SymbolTable

Type

uint32_t llvm::objcopy:🧝:Object::Type

Version

uint32_t llvm::objcopy:🧝:Object::Version


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