LLVM  15.0.0git
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
llvm::objcopy::elf::GroupSection Class Reference

#include "ObjCopy/ELF/ELFObject.h"

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

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
 
- 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
 

Static Public Member Functions

static bool classof (const SectionBase *S)
 

Public Attributes

ArrayRef< uint8_t > Contents
 
- 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_t > OriginalData
 
bool HasSymbol = false
 

Detailed Description

Definition at line 807 of file ELFObject.h.

Constructor & Destructor Documentation

◆ GroupSection()

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

Definition at line 819 of file ELFObject.h.

References 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 824 of file ELFObject.h.

◆ classof()

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

Definition at line 838 of file ELFObject.h.

References S, and llvm::ELF::SHT_GROUP.

◆ finalize()

void GroupSection::finalize ( )
overridevirtual

◆ markSymbols()

void GroupSection::markSymbols ( )
overridevirtual

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

Definition at line 1088 of file ELFObject.cpp.

References llvm::objcopy::elf::Symbol::Referenced.

◆ onRemove()

void GroupSection::onRemove ( )
overridevirtual

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

Definition at line 1100 of file ELFObject.cpp.

References llvm::objcopy::elf::SectionBase::Flags, and llvm::ELF::SHF_GROUP.

◆ 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 823 of file ELFObject.h.

References llvm::RISCVFenceField::W.

◆ setSymbol()

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

Definition at line 822 of file ELFObject.h.

References S.

◆ setSymTab()

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

Definition at line 821 of file ELFObject.h.

Member Data Documentation

◆ Contents

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

Definition at line 817 of file ELFObject.h.


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