| LLVM 22.0.0git
    | 
#include "ObjCopy/ELF/ELFObject.h"
| Static Public Member Functions | |
| static bool | classof (const SectionBase *S) | 
| Protected Types | |
| using | SymPtr = std::unique_ptr<Symbol> | 
| Protected Attributes | |
| std::vector< std::unique_ptr< Symbol > > | Symbols | 
| StringTableSection * | SymbolNames = nullptr | 
| SectionIndexSection * | SectionIndexTable = nullptr | 
| bool | IndicesChanged = false | 
| Additional Inherited Members | |
| Public Attributes inherited from llvm::objcopy::elf::SectionBase | |
| std::string | Name | 
| Segment * | ParentSegment = 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 | 
Definition at line 811 of file ELFObject.h.
| 
 | protected | 
Definition at line 823 of file ELFObject.h.
| 
 | inline | 
Definition at line 826 of file ELFObject.h.
References llvm::objcopy::elf::SectionBase::OriginalType, llvm::ELF::SHT_SYMTAB, and llvm::objcopy::elf::SectionBase::Type.
Referenced by getSymbolByIndex().
| 
 | overridevirtual | 
Implements llvm::objcopy::elf::SectionBase.
Definition at line 882 of file ELFObject.cpp.
References llvm::objcopy::elf::MutableSectionVisitor::visit().
| 
 | overridevirtual | 
Implements llvm::objcopy::elf::SectionBase.
Definition at line 878 of file ELFObject.cpp.
References llvm::objcopy::elf::SectionVisitor::visit().
| void SymbolTableSection::addSymbol | ( | Twine | Name, | 
| uint8_t | Bind, | ||
| uint8_t | Type, | ||
| SectionBase * | DefinedIn, | ||
| uint64_t | Value, | ||
| uint8_t | Visibility, | ||
| uint16_t | Shndx, | ||
| uint64_t | SymbolSize ) | 
Definition at line 714 of file ELFObject.cpp.
References llvm::objcopy::elf::Symbol::Binding, llvm::objcopy::elf::Symbol::DefinedIn, llvm::objcopy::elf::SectionBase::EntrySize, llvm::objcopy::elf::SectionBase::HasSymbol, llvm::objcopy::elf::Symbol::Index, llvm::objcopy::elf::SectionBase::Name, llvm::objcopy::elf::Symbol::Name, llvm::objcopy::elf::SectionBase::SectionBase(), llvm::ELF::SHN_LORESERVE, llvm::objcopy::elf::Symbol::ShndxType, llvm::objcopy::elf::SectionBase::Size, llvm::objcopy::elf::Symbol::Size, llvm::objcopy::elf::SYMBOL_SIMPLE_INDEX, Symbols, llvm::objcopy::elf::SectionBase::Type, llvm::objcopy::elf::Symbol::Type, llvm::objcopy::elf::Symbol::Value, and llvm::objcopy::elf::Symbol::Visibility.
Referenced by llvm::objcopy::elf::Object::addNewSymbolTable(), and addSymbol().
| 
 | inlinestatic | 
Definition at line 856 of file ELFObject.h.
References llvm::objcopy::elf::SectionBase::OriginalType, llvm::objcopy::elf::SectionBase::SectionBase(), and llvm::ELF::SHT_SYMTAB.
| 
 | inline | 
Definition at line 833 of file ELFObject.h.
References Symbols.
Referenced by removeUnneededSections(), and replaceAndRemoveSections().
| void SymbolTableSection::fillShndxTable | ( | ) | 
Definition at line 831 of file ELFObject.cpp.
References SectionIndexTable, llvm::ELF::SHN_LORESERVE, llvm::ELF::SHN_UNDEF, and Symbols.
| 
 | overridevirtual | 
Reimplemented from llvm::objcopy::elf::SectionBase.
Definition at line 802 of file ELFObject.cpp.
References llvm::objcopy::elf::SectionBase::Info, llvm::objcopy::elf::SectionBase::Link, llvm::ELF::STB_LOCAL, SymbolNames, and Symbols.
| 
 | inline | 
Definition at line 838 of file ELFObject.h.
References SectionIndexTable.
| 
 | inline | 
Definition at line 840 of file ELFObject.h.
References llvm::objcopy::elf::SectionBase::SectionBase(), and SymbolNames.
Referenced by removeUnneededSections(), and replaceAndRemoveSections().
Definition at line 852 of file ELFObject.cpp.
References getSymbolByIndex(), llvm::objcopy::elf::SectionBase::Index, SymbolTableSection(), and llvm::Expected< T >::takeError().
Definition at line 845 of file ELFObject.cpp.
References llvm::createStringError(), llvm::objcopy::elf::SectionBase::Index, llvm::invalid_argument, and Symbols.
Referenced by getSymbolByIndex(), and initRelocations().
| 
 | inline | 
Definition at line 834 of file ELFObject.h.
References IndicesChanged.
| 
 | overridevirtual | 
Reimplemented from llvm::objcopy::elf::SectionBase.
Definition at line 786 of file ELFObject.cpp.
References llvm::objcopy::elf::SectionTableRef::getSectionOfType(), llvm::objcopy::elf::SectionBase::Link, llvm::objcopy::elf::SectionBase::Size, llvm::Error::success(), and llvm::Expected< T >::takeError().
Referenced by llvm::objcopy::elf::Object::addNewSymbolTable().
| void SymbolTableSection::prepareForLayout | ( | ) | 
Definition at line 815 of file ELFObject.cpp.
References SectionIndexTable, SymbolNames, and Symbols.
| 
 | overridevirtual | 
Reimplemented from llvm::objcopy::elf::SectionBase.
Definition at line 739 of file ELFObject.cpp.
References llvm::createStringError(), llvm::objcopy::elf::Symbol::DefinedIn, llvm::invalid_argument, removeSymbols(), llvm::objcopy::elf::SectionBase::SectionBase(), SectionIndexTable, SymbolNames, and ToRemove.
| 
 | overridevirtual | 
Reimplemented from llvm::objcopy::elf::SectionBase.
Definition at line 765 of file ELFObject.cpp.
References llvm::objcopy::elf::SectionBase::EntrySize, IndicesChanged, llvm::objcopy::elf::SectionBase::Size, llvm::Error::success(), Symbols, and ToRemove.
Referenced by removeSectionReferences().
| 
 | overridevirtual | 
Reimplemented from llvm::objcopy::elf::SectionBase.
Definition at line 779 of file ELFObject.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), llvm::objcopy::elf::SectionBase::SectionBase(), and Symbols.
| 
 | inline | 
Definition at line 835 of file ELFObject.h.
References SectionIndexTable.
| void SymbolTableSection::updateSymbols | ( | function_ref< void(Symbol &)> | Callable | ) | 
Definition at line 756 of file ELFObject.cpp.
References llvm::drop_begin(), llvm::ELF::STB_LOCAL, and Symbols.
Referenced by updateAndRemoveSymbols().
| 
 | protected | 
Definition at line 821 of file ELFObject.h.
Referenced by indicesChanged(), and removeSymbols().
| 
 | protected | 
Definition at line 820 of file ELFObject.h.
Referenced by fillShndxTable(), getShndxTable(), prepareForLayout(), removeSectionReferences(), and setShndxTable().
| 
 | protected | 
Definition at line 819 of file ELFObject.h.
Referenced by finalize(), getStrTab(), prepareForLayout(), and removeSectionReferences().
| 
 | protected | 
Definition at line 818 of file ELFObject.h.
Referenced by addSymbol(), empty(), fillShndxTable(), finalize(), getSymbolByIndex(), prepareForLayout(), removeSymbols(), replaceSectionReferences(), updateSymbols(), llvm::objcopy::elf::ELFSectionSizer< ELFT >::visit(), and llvm::objcopy::elf::ELFSectionWriter< ELFT >::visit().