================ @@ -239,6 +298,63 @@ class GOFFWriter { GOFFWriter::GOFFWriter(raw_pwrite_stream &OS, MCAssembler &Asm) : OS(OS), Asm(Asm) {} +void GOFFWriter::defineSectionSymbols(const MCSectionGOFF &Section) { + if (Section.isSD()) { + GOFFSymbol SD(Section.getName(), Section.getId(), + Section.getSDAttributes()); + writeSymbol(SD); + } + + if (Section.isED()) { + GOFFSymbol ED(Section.getName(), Section.getId(), + Section.getParent()->getId(), Section.getEDAttributes()); + if (Section.requiresLength()) + ED.SectionLength = Asm.getSectionAddressSize(Section); + writeSymbol(ED); + } + + if (Section.isPR()) { + GOFFSymbol PR(Section.getName(), Section.getId(), + Section.getParent()->getId(), Section.getPRAttributes()); + PR.SectionLength = Asm.getSectionAddressSize(Section); + if (Section.requiresNonZeroLength()) { ---------------- uweigand wrote:
I see. I think we should implement this rule then - if a section is the target of an ADA link, it cannot be empty. That would be preferable to upper layers having to remember setting this flag. (I guess we could still have a flag internally, but that would get automatically set e.g. by `setADA`.) Or, in the alternative, should we simply *not* set the ADA link if the target section is empty? If an ADA section, it cannot actually be used for anything, so do we even need to register it as ADA for a text section? https://github.com/llvm/llvm-project/pull/133799 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits