LLVM 22.0.0git
llvm::objcopy::elf::GroupSection Class Reference

#include "ObjCopy/ELF/ELFObject.h"

Inheritance diagram for llvm::objcopy::elf::GroupSection:
[legend]

Public Types

template<class T>
using ConstRange

Public Member Functions

 GroupSection (ArrayRef< uint8_t > Data)
void setSymTab (const SymbolTableSection *SymTabSec)
void setSymbol (Symbol *S)
void setFlagWord (ELF::Elf32_Word W)
void addMember (SectionBase *Sec)
Error accept (SectionVisitor &) const override
Error accept (MutableSectionVisitor &Visitor) override
void finalize () override
Error removeSectionReferences (bool AllowBrokenLinks, function_ref< bool(const SectionBase *)> ToRemove) override
Error removeSymbols (function_ref< bool(const Symbol &)> ToRemove) override
void markSymbols () override
void replaceSectionReferences (const DenseMap< SectionBase *, SectionBase * > &FromTo) override
void onRemove () override
ConstRange< SectionBasemembers () const
Public Member Functions inherited from llvm::objcopy::elf::SectionBase
 SectionBase ()=default
 SectionBase (const SectionBase &)=default
virtual ~SectionBase ()=default
virtual Error initialize (SectionTableRef SecTable)
virtual bool hasContents () const
virtual ArrayRef< uint8_tgetContents () const
virtual void restoreSymTabLink (SymbolTableSection &)

Static Public Member Functions

static bool classof (const SectionBase *S)

Public Attributes

ArrayRef< uint8_tContents
Public Attributes inherited from llvm::objcopy::elf::SectionBase
std::string Name
SegmentParentSegment = nullptr
uint64_t HeaderOffset = 0
uint32_t Index = 0
uint32_t OriginalIndex = 0
uint64_t OriginalFlags = 0
uint64_t OriginalType = ELF::SHT_NULL
uint64_t OriginalOffset = std::numeric_limits<uint64_t>::max()
uint64_t Addr = 0
uint64_t Align = 1
uint32_t EntrySize = 0
uint64_t Flags = 0
uint64_t Info = 0
uint64_t Link = ELF::SHN_UNDEF
uint64_t NameIndex = 0
uint64_t Offset = 0
uint64_t Size = 0
uint64_t Type = ELF::SHT_NULL
ArrayRef< uint8_tOriginalData
bool HasSymbol = false

Detailed Description

Definition at line 940 of file ELFObject.h.

Member Typedef Documentation

◆ 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 iterator.h:324

Definition at line 949 of file ELFObject.h.

Constructor & Destructor Documentation

◆ GroupSection()

llvm::objcopy::elf::GroupSection::GroupSection ( ArrayRef< uint8_t > Data)
inlineexplicit

Definition at line 955 of file ELFObject.h.

References Contents, and llvm::Data.

Member Function Documentation

◆ accept() [1/2]

Error GroupSection::accept ( MutableSectionVisitor & Visitor)
overridevirtual

◆ accept() [2/2]

Error GroupSection::accept ( SectionVisitor & Visitor) const
overridevirtual

◆ addMember()

void llvm::objcopy::elf::GroupSection::addMember ( SectionBase * Sec)
inline

Definition at line 960 of file ELFObject.h.

References llvm::objcopy::elf::SectionBase::SectionBase().

◆ classof()

bool llvm::objcopy::elf::GroupSection::classof ( const SectionBase * S)
inlinestatic

◆ finalize()

void GroupSection::finalize ( )
overridevirtual

◆ markSymbols()

void GroupSection::markSymbols ( )
overridevirtual

Reimplemented from llvm::objcopy::elf::SectionBase.

Definition at line 1114 of file ELFObject.cpp.

◆ members()

ConstRange< SectionBase > llvm::objcopy::elf::GroupSection::members ( ) const
inline

Definition at line 974 of file ELFObject.h.

References llvm::make_pointee_range().

Referenced by llvm::objcopy::elf::Object::removeSections().

◆ onRemove()

void GroupSection::onRemove ( )
overridevirtual

◆ removeSectionReferences()

Error GroupSection::removeSectionReferences ( bool AllowBrokenLinks,
function_ref< bool(const SectionBase *)> ToRemove )
overridevirtual

◆ removeSymbols()

Error GroupSection::removeSymbols ( function_ref< bool(const Symbol &)> ToRemove)
overridevirtual

◆ replaceSectionReferences()

void GroupSection::replaceSectionReferences ( const DenseMap< SectionBase *, SectionBase * > & FromTo)
overridevirtual

◆ setFlagWord()

void llvm::objcopy::elf::GroupSection::setFlagWord ( ELF::Elf32_Word W)
inline

Definition at line 959 of file ELFObject.h.

◆ setSymbol()

void llvm::objcopy::elf::GroupSection::setSymbol ( Symbol * S)
inline

Definition at line 958 of file ELFObject.h.

◆ setSymTab()

void llvm::objcopy::elf::GroupSection::setSymTab ( const SymbolTableSection * SymTabSec)
inline

Definition at line 957 of file ELFObject.h.

Member Data Documentation

◆ Contents

ArrayRef<uint8_t> llvm::objcopy::elf::GroupSection::Contents

Definition at line 953 of file ELFObject.h.

Referenced by GroupSection().


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