Lines Matching defs:isec
148 const ConcatInputSection *isec;
225 nameReloc = mc.isec->getRelocAt(catLayout.nameOffset);
228 const auto *roIsec = mc.isec->getRelocAt(classLayout.roDataOffset)
257 formatObjAndSrcFileName(mc.isec));
300 const auto *classIsec = cast<ConcatInputSection>(classSym->isec());
308 if (const auto *r = classSym->isec()->getRelocAt(classLayout.metaClassOffset))
318 for (const InputSection *isec : inputSections) {
319 if (isec->getName() == section_names::objcCatList)
320 for (const Reloc &r : isec->relocs) {
429 void eraseISec(ConcatInputSection *isec);
435 void collectSectionWriteInfoFromIsec(const InputSection *isec,
441 void parseProtocolListInfo(const ConcatInputSection *isec, uint32_t secOffset,
445 PointerListInfo parseProtocolListInfo(const ConcatInputSection *isec,
449 bool parsePointerListInfo(const ConcatInputSection *isec, uint32_t secOffset,
470 Defined *tryFindDefinedOnIsec(const InputSection *isec, uint32_t offset);
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,
521 const InputSection *isec, InfoWriteSection &catWriteInfo) {
523 catWriteInfo.inputSection = const_cast<Section *>(&isec->section);
524 catWriteInfo.align = isec->align;
525 catWriteInfo.outputSection = isec->parent;
530 if (isec->relocs.size())
531 catWriteInfo.relocTemplate = isec->relocs[0];
537 ObjcCategoryMerger::tryGetSymbolAtIsecOffset(const ConcatInputSection *isec,
539 if (!isec)
541 const Reloc *reloc = isec->getRelocAt(offset);
551 sym = tryFindDefinedOnIsec(definedSym->isec(),
558 Defined *ObjcCategoryMerger::tryFindDefinedOnIsec(const InputSection *isec,
560 for (Defined *sym : isec->symbols)
568 ObjcCategoryMerger::tryGetDefinedAtIsecOffset(const ConcatInputSection *isec,
570 Symbol *sym = tryGetSymbolAtIsecOffset(isec, offset);
579 ConcatInputSection *isec = dyn_cast<ConcatInputSection>(classSym->isec());
580 if (!isec)
584 return tryGetDefinedAtIsecOffset(isec, classLayout.roDataOffset +
588 isec, classLayout.metaClassOffset + classSym->value);
593 dyn_cast<ConcatInputSection>(metaClass->isec()),
600 const ConcatInputSection *isec, uint32_t offset) {
601 const Reloc *reloc = isec->getRelocAt(offset);
610 if (auto *cisec = dyn_cast_or_null<ConcatInputSection>(sym->isec()))
612 else if (auto *csisec = dyn_cast_or_null<CStringInputSection>(sym->isec())) {
643 collectSectionWriteInfoFromIsec(catNameSym->isec(),
654 collectSectionWriteInfoFromIsec(ptrList->isec(),
669 const ConcatInputSection *isec, uint32_t secOffset,
671 assert((isec && (secOffset + target->wordSize <= isec->data.size())) &&
674 const Reloc *reloc = isec->getRelocAt(secOffset);
685 ptrListSym->isec()->data.data() + listHeaderLayout.structSizeOffset);
699 assert(((expectedListSize == ptrListSym->isec()->data.size() &&
701 (expectedListSizeSwift == ptrListSym->isec()->data.size() &&
707 const Reloc *reloc = ptrListSym->isec()->getRelocAt(off);
716 assert((ptrListSym->isec()->getRelocAt(off) == nullptr) &&
724 ObjcCategoryMerger::parseProtocolListInfo(const ConcatInputSection *isec,
728 parseProtocolListInfo(isec, secOffset, ptrList, sourceLang);
735 bool ObjcCategoryMerger::parsePointerListInfo(const ConcatInputSection *isec,
739 assert(isec && "Trying to parse pointer list from null isec");
740 assert(secOffset + target->wordSize <= isec->data.size() &&
743 const Reloc *reloc = isec->getRelocAt(secOffset);
752 ptrListSym->isec()->data.data() + listHeaderLayout.structSizeOffset);
754 ptrListSym->isec()->data.data() + listHeaderLayout.structCountOffset);
764 assert(expectedListSize == ptrListSym->isec()->data.size() &&
769 const Reloc *reloc = ptrListSym->isec()->getRelocAt(off);
1147 refFrom->isec()->relocs.push_back(r);
1187 auto *catBodyIsec = dyn_cast<ConcatInputSection>(categorySym->isec());
1277 void ObjcCategoryMerger::eraseISec(ConcatInputSection *isec) {
1278 isec->live = false;
1279 for (auto &sym : isec->symbols)
1425 ConcatInputSection *metaIsec = dyn_cast<ConcatInputSection>(metaRo->isec());
1427 ConcatInputSection *classIsec = dyn_cast<ConcatInputSection>(classRo->isec());
1493 void ObjcCategoryMerger::eraseSymbolAtIsecOffset(ConcatInputSection *isec,
1495 Defined *sym = tryGetDefinedAtIsecOffset(isec, offset);
1499 // Remove the symbol from isec->symbols
1501 llvm::erase(isec->symbols, sym);
1505 llvm::erase_if(isec->relocs, removeAtOff);
1509 if (ConcatInputSection *cisec = dyn_cast<ConcatInputSection>(sym->isec()))