Lines Matching refs:SectionBase
34 class SectionBase; variable
51 MutableArrayRef<std::unique_ptr<SectionBase>> Sections;
54 using iterator = pointee_iterator<std::unique_ptr<SectionBase> *>;
56 explicit SectionTableRef(MutableArrayRef<std::unique_ptr<SectionBase>> Secs) in SectionTableRef()
64 Expected<SectionBase *> getSection(uint32_t Index, Twine ErrMsg);
282 void writeSection(const SectionBase *Sec, ArrayRef<uint8_t> Data);
329 void writeShdr(const SectionBase &Sec);
370 bool operator()(const SectionBase *Lhs, const SectionBase *Rhs) const;
373 std::set<const SectionBase *, SectionCompare> Sections;
376 Error checkSection(const SectionBase &Sec);
387 class SectionBase {
412 SectionBase() = default;
413 SectionBase(const SectionBase &) = default;
415 virtual ~SectionBase() = default;
422 function_ref<bool(const SectionBase *)> ToRemove);
428 replaceSectionReferences(const DenseMap<SectionBase *, SectionBase *> &);
436 bool operator()(const SectionBase *Lhs, const SectionBase *Rhs) const { in operator()
460 std::set<const SectionBase *, SectionCompare> Sections;
465 const SectionBase *firstSection() const { in firstSection()
471 void removeSection(const SectionBase *Sec) { Sections.erase(Sec); } in removeSection()
472 void addSection(const SectionBase *Sec) { Sections.insert(Sec); } in addSection()
477 class Section : public SectionBase {
481 SectionBase *LinkSection = nullptr;
490 function_ref<bool(const SectionBase *)> ToRemove) override;
495 class OwnedDataSection : public SectionBase {
523 class CompressedSection : public SectionBase {
533 create(const SectionBase &Sec, DebugCompressionType CompressionType);
544 static bool classof(const SectionBase *S) { in classof()
550 CompressedSection(const SectionBase &Sec,
556 class DecompressedSection : public SectionBase {
561 : SectionBase(Sec) { in DecompressedSection()
581 class StringTableSection : public SectionBase {
597 static bool classof(const SectionBase *S) { in classof()
626 SectionBase *DefinedIn = nullptr;
641 class SectionIndexSection : public SectionBase {
673 class SymbolTableSection : public SectionBase {
689 void addSymbol(Twine Name, uint8_t Bind, uint8_t Type, SectionBase *DefinedIn,
700 const SectionBase *getStrTab() const { return SymbolNames; } in getStrTab()
707 function_ref<bool(const SectionBase *)> ToRemove) override;
714 const DenseMap<SectionBase *, SectionBase *> &FromTo) override;
716 static bool classof(const SectionBase *S) { in classof()
737 class RelocationSectionBase : public SectionBase {
739 SectionBase *SecToApplyRel = nullptr;
742 const SectionBase *getSection() const { return SecToApplyRel; } in getSection()
743 void setSection(SectionBase *Sec) { SecToApplyRel = Sec; } in setSection()
745 static bool classof(const SectionBase *S) { in classof()
778 function_ref<bool(const SectionBase *)> ToRemove) override;
782 const DenseMap<SectionBase *, SectionBase *> &FromTo) override;
784 static bool classof(const SectionBase *S) { in classof()
794 class GroupSection : public SectionBase {
799 SmallVector<SectionBase *, 3> GroupMembers;
811 void addMember(SectionBase *Sec) { GroupMembers.push_back(Sec); } in addMember()
818 function_ref<bool(const SectionBase *)> ToRemove) override;
822 const DenseMap<SectionBase *, SectionBase *> &FromTo) override;
825 static bool classof(const SectionBase *S) { in classof()
834 static bool classof(const SectionBase *S) { in classof()
843 static bool classof(const SectionBase *S) { in classof()
862 function_ref<bool(const SectionBase *)> ToRemove) override;
864 static bool classof(const SectionBase *S) { in classof()
871 class GnuDebugLinkSection : public SectionBase {
955 Expected<SectionBase &> makeSection(const Elf_Shdr &Shdr);
1010 using SecPtr = std::unique_ptr<SectionBase>;
1017 static bool sectionIsAlloc(const SectionBase &Sec) { in sectionIsAlloc()
1056 ConstRange<SectionBase> sections() const { in sections()
1066 SectionBase *findSection(StringRef Name) { in findSection()
1077 std::function<bool(const SectionBase &)> ToRemove);