Lines Matching refs:Section

74 template <class ELFT> void ELFSectionSizer<ELFT>::visit(Section &Sec) {}  in visit()
135 void SectionWriter::visit(const Section &Sec) { in visit()
142 void Section::accept(SectionVisitor &Visitor) const { Visitor.visit(*this); } in accept()
144 void Section::accept(MutableSectionVisitor &Visitor) { Visitor.visit(*this); } in accept()
638 void Section::removeSectionReferences(const SectionBase *Sec) { in removeSectionReferences()
666 void Section::initialize(SectionTableRef SecTable) { in initialize()
676 void Section::finalize() { this->Link = LinkSection ? LinkSection->Index : 0; } in finalize()
746 static bool sectionWithinSegment(const SectionBase &Section, in sectionWithinSegment() argument
752 uint64_t SecSize = Section.Size ? Section.Size : 1; in sectionWithinSegment()
753 return Segment.Offset <= Section.OriginalOffset && in sectionWithinSegment()
754 Segment.Offset + Segment.FileSize >= Section.OriginalOffset + SecSize; in sectionWithinSegment()
821 auto &DataSection = Obj->addSection<Section>(Data); in addData()
841 for (auto &Section : Obj->sections()) { in initSections() local
842 Section.initialize(Obj->sections()); in initSections()
889 for (auto &Section : Obj.sections()) { in readProgramHeaders() local
890 if (sectionWithinSegment(Section, Seg)) { in readProgramHeaders()
891 Seg.addSection(&Section); in readProgramHeaders()
892 if (!Section.ParentSegment || in readProgramHeaders()
893 Section.ParentSegment->Offset > Seg.Offset) { in readProgramHeaders()
894 Section.ParentSegment = &Seg; in readProgramHeaders()
1056 return Obj.addSection<Section>(Data); in makeSection()
1064 return Obj.addSection<Section>(Data); in makeSection()
1085 return Obj.addSection<Section>(Data); in makeSection()
1097 return Obj.addSection<Section>(Data); in makeSection()
1144 for (auto &Section : Obj.sections()) { in readSectionHeaders() local
1145 if (&Section == Obj.SymbolTable) in readSectionHeaders()
1147 Section.initialize(Obj.sections()); in readSectionHeaders()
1148 if (auto RelSec = dyn_cast<RelocationSection>(&Section)) { in readSectionHeaders()
1156 } else if (auto GroupSec = dyn_cast<GroupSection>(&Section)) { in readSectionHeaders()
1434 for (auto &Section : Sections) { in layoutSections() local
1435 Section.Index = Index++; in layoutSections()
1436 if (Section.ParentSegment != nullptr) { in layoutSections()
1437 auto Segment = *Section.ParentSegment; in layoutSections()
1438 Section.Offset = in layoutSections()
1439 Segment.Offset + (Section.OriginalOffset - Segment.OriginalOffset); in layoutSections()
1441 Offset = alignTo(Offset, Section.Align == 0 ? 1 : Section.Align); in layoutSections()
1442 Section.Offset = Offset; in layoutSections()
1443 if (Section.Type != SHT_NOBITS) in layoutSections()
1444 Offset += Section.Size; in layoutSections()
1548 for (const auto &Section : Obj.sections()) { in finalize() local
1549 Obj.SectionNames->addString(Section.Name); in finalize()
1578 for (auto &Section : Obj.sections()) { in finalize() local
1579 Section.HeaderOffset = Offset; in finalize()
1582 Section.NameIndex = Obj.SectionNames->findIndex(Section.Name); in finalize()
1583 Section.finalize(); in finalize()
1591 for (auto &Section : Obj.sections()) { in write() local
1592 if ((Section.Flags & SHF_ALLOC) == 0) in write()
1594 Section.accept(*SecWriter); in write()
1609 for (auto &Section : Obj.sections()) { in finalize() local
1610 if ((Section.Flags & SHF_ALLOC) != 0 && Section.ParentSegment != nullptr) { in finalize()
1611 OrderedSegments.push_back(Section.ParentSegment); in finalize()
1662 for (auto &Section : Obj.sections()) { in finalize() local
1663 if ((Section.Flags & SHF_ALLOC) == 0) in finalize()
1665 AllocatedSections.push_back(&Section); in finalize()
1674 for (const auto &Section : AllocatedSections) { in finalize() local
1675 if (Section->Type != SHT_NOBITS) in finalize()
1676 TotalSize = std::max(TotalSize, Section->Offset + Section->Size); in finalize()