Lines Matching defs:ConcatInputSection
148 const ConcatInputSection *isec;
166 void parseCategory(const ConcatInputSection *catListIsec);
170 void parseMethods(const ConcatInputSection *methodsIsec,
172 const ConcatInputSection *containerIsec,
189 void ObjcCategoryChecker::parseMethods(const ConcatInputSection *methodsIsec,
191 const ConcatInputSection *containerIsec,
261 void ObjcCategoryChecker::parseCategory(const ConcatInputSection *catIsec) {
272 parseMethods(cast<ConcatInputSection>(r->getReferentInputSection()),
277 parseMethods(cast<ConcatInputSection>(r->getReferentInputSection()),
285 [&](const InputSection *classIsec) -> ConcatInputSection * {
288 cast_or_null<ConcatInputSection>(r->getReferentInputSection())) {
291 if (auto *methodsIsec = cast_or_null<ConcatInputSection>(
300 const auto *classIsec = cast<ConcatInputSection>(classSym->isec());
310 cast<ConcatInputSection>(r->getReferentInputSection())))
321 auto *catIsec = cast<ConcatInputSection>(r.getReferentInputSection());
335 ConcatInputSection *catListIsec;
336 ConcatInputSection *catBodyIsec;
419 ObjcCategoryMerger(std::vector<ConcatInputSection *> &_allInputSections);
429 void eraseISec(ConcatInputSection *isec);
433 MapVector<ConcatInputSection *, std::set<uint64_t>>
441 void parseProtocolListInfo(const ConcatInputSection *isec, uint32_t secOffset,
445 PointerListInfo parseProtocolListInfo(const ConcatInputSection *isec,
449 bool parsePointerListInfo(const ConcatInputSection *isec, uint32_t secOffset,
471 Symbol *tryGetSymbolAtIsecOffset(const ConcatInputSection *isec,
473 Defined *tryGetDefinedAtIsecOffset(const ConcatInputSection *isec,
479 void eraseSymbolAtIsecOffset(ConcatInputSection *isec, uint32_t offset);
480 void tryEraseDefinedAtIsecOffset(const ConcatInputSection *isec,
496 std::vector<ConcatInputSection *> &allInputSections;
513 std::vector<ConcatInputSection *> &_allInputSections)
537 ObjcCategoryMerger::tryGetSymbolAtIsecOffset(const ConcatInputSection *isec,
568 ObjcCategoryMerger::tryGetDefinedAtIsecOffset(const ConcatInputSection *isec,
579 ConcatInputSection *isec = dyn_cast<ConcatInputSection>(classSym->isec());
593 dyn_cast<ConcatInputSection>(metaClass->isec()),
597 // Given an ConcatInputSection or CStringInputSection and an offset, if there is
600 const ConcatInputSection *isec, uint32_t offset) {
610 if (auto *cisec = dyn_cast_or_null<ConcatInputSection>(sym->isec()))
665 // Parse a protocol list that might be linked to ConcatInputSection at a given
669 const ConcatInputSection *isec, uint32_t secOffset,
724 ObjcCategoryMerger::parseProtocolListInfo(const ConcatInputSection *isec,
732 // Parse a pointer list that might be linked to ConcatInputSection at a given
735 bool ObjcCategoryMerger::parsePointerListInfo(const ConcatInputSection *isec,
873 ConcatInputSection *listSec = make<ConcatInputSection>(
933 ConcatInputSection *listSec = make<ConcatInputSection>(
966 // This method creates an __objc_catlist ConcatInputSection with a single slot
974 ConcatInputSection *newCatList =
975 make<ConcatInputSection>(*infoCategoryWriter.catListInfo.inputSection,
1012 ConcatInputSection *newBodySec =
1013 make<ConcatInputSection>(*infoCategoryWriter.catBodyInfo.inputSection,
1174 ConcatInputSection *catListCisec = dyn_cast<ConcatInputSection>(sec);
1176 "__objc_catList InputSection is not a ConcatInputSection");
1187 auto *catBodyIsec = dyn_cast<ConcatInputSection>(categorySym->isec());
1189 "Category data section is not an ConcatInputSection");
1223 const MapVector<ConcatInputSection *, std::set<uint64_t>>
1230 ConcatInputSection *catListIsec = mapEntry.first;
1249 ConcatInputSection *listSec = make<ConcatInputSection>(
1277 void ObjcCategoryMerger::eraseISec(ConcatInputSection *isec) {
1288 MapVector<ConcatInputSection *, std::set<uint64_t>> catListToErasedOffsets;
1425 ConcatInputSection *metaIsec = dyn_cast<ConcatInputSection>(metaRo->isec());
1427 ConcatInputSection *classIsec = dyn_cast<ConcatInputSection>(classRo->isec());
1493 void ObjcCategoryMerger::eraseSymbolAtIsecOffset(ConcatInputSection *isec,
1507 // Now, if the symbol fully occupies a ConcatInputSection, we can also erase
1508 // the whole ConcatInputSection
1509 if (ConcatInputSection *cisec = dyn_cast<ConcatInputSection>(sym->isec()))