[llvm-branch-commits] GOFF: Only register sections within MCObjectStreamer::changeSection (PR #150183)
Fangrui Song via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Jul 23 10:09:09 PDT 2025
================
@@ -26,19 +26,15 @@ GOFFObjectWriter &MCGOFFStreamer::getWriter() {
return static_cast<GOFFObjectWriter &>(getAssembler().getWriter());
}
-// Make sure that all section are registered in the correct order.
-static void registerSectionHierarchy(MCAssembler &Asm, MCSectionGOFF *Section) {
- if (Section->isRegistered())
- return;
- if (Section->getParent())
- registerSectionHierarchy(Asm, Section->getParent());
- Asm.registerSection(*Section);
-}
-
void MCGOFFStreamer::changeSection(MCSection *Section, uint32_t Subsection) {
- registerSectionHierarchy(getAssembler(),
- static_cast<MCSectionGOFF *>(Section));
- MCObjectStreamer::changeSection(Section, Subsection);
+ // Make sure that all section are registered in the correct order.
+ SmallVector<MCSectionGOFF *> Sections;
+ for (auto *S = static_cast<MCSectionGOFF *>(Section); S; S = S->getParent())
+ Sections.push_back(S);
+ while (!Sections.empty()) {
+ auto *S = Sections.pop_back_val();
+ MCObjectStreamer::changeSection(S, 0);
----------------
MaskRay wrote:
subsection is a GNU Assembler feature. In LLVM only ELF targets use it. Does GOFF use it?
https://github.com/llvm/llvm-project/pull/150183
More information about the llvm-branch-commits
mailing list