Lines Matching defs:osec
138 if (secRef && secRef->osec.location.empty()) {
146 sec->osec.location = std::string(location);
280 for (SectionCommand *subCmd : cast<OutputDesc>(cmd)->osec.commands)
316 cast<OutputDesc>(subCmd)->osec.name == name;
327 return to != nullptr && to->osec.name == cmd.where;
356 const OutputSection &sec = cast<OutputDesc>(cmd)->osec;
655 auto process = [this](OutputSection *osec) {
656 SmallVector<InputSectionBase *, 0> v = createInputSectionList(*osec);
660 if (osec->name == "/DISCARD/") {
663 discardSynthetic(*osec);
664 osec->commands.clear();
675 if (!matchConstraints(v, osec->constraint)) {
678 osec->commands.clear();
685 if (osec->subalignExpr) {
686 uint32_t subalign = osec->subalignExpr().getValue();
694 osec->partition = 1;
706 OutputSection *osec = &osd->osec;
707 if (process(osec) &&
708 !map.try_emplace(CachedHashStringRef(osec->name), osd).second)
709 warn("OVERWRITE_SECTIONS specifies duplicate " + osec->name);
713 OutputSection *osec = &osd->osec;
714 if (OutputDesc *overwrite = map.lookup(CachedHashStringRef(osec->name))) {
715 log(overwrite->osec.location + " overwrites " + osec->name);
716 overwrite->osec.sectionIndex = i++;
718 } else if (process(osec)) {
719 osec->sectionIndex = i++;
727 if (osd->osec.partition == 1 && osd->osec.sectionIndex == UINT32_MAX)
750 for (SectionCommand *subCmd : cast<OutputDesc>(cmd)->osec.commands)
762 if (osd->osec.name == name)
763 return &osd->osec;
769 osd->osec.recordSection(isec);
801 out->relocationSection = &osd->osec;
872 v.push_back(&osd->osec);
1231 auto *sec = &cast<OutputDesc>(cmd)->osec;
1294 OutputSection *sec = &osd->osec;
1322 maybePropagatePhdrs(osd->osec, defPhdrs);
1420 if (assignOffsets(&cast<OutputDesc>(cmd)->osec) && !changedOsec)
1421 changedOsec = &cast<OutputDesc>(cmd)->osec;
1448 OutputSection *osec = &od->osec;
1449 if (!osec->memRegion)
1456 for (SectionCommand *cmd : reverse(osec->commands)) {
1457 if (!hasRegionOverflowed(osec->memRegion) &&
1458 !hasRegionOverflowed(osec->lmaRegion))
1491 osec->memRegion->curPos -= isec->getSize();
1492 if (osec->lmaRegion)
1493 osec->lmaRegion->curPos -= isec->getSize();
1498 if (!hasRegionOverflowed(osec->memRegion) &&
1499 !hasRegionOverflowed(osec->lmaRegion))
1666 const OutputSection *osec, uint64_t addr) {
1667 uint64_t osecEnd = addr + osec->size;
1670 error("section '" + osec->name + "' will not fit in region '" +