Since we always emit only one abbrevation section (shared by all the
compilation units in this module) there's no need for a separate label
at the start of each one (and we weren't using the CU ID anyway, so
there really was only one label). Use the section label instead and drop
the wholely unused debug_abbrev_end label.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196394
91177308-0d34-0410-b5e6-
96231b3b80d8
// Start the debug abbrev section.
Asm->OutStreamer.SwitchSection(Section);
- MCSymbol *Begin = Asm->GetTempSymbol(Section->getLabelBeginName());
- Asm->OutStreamer.EmitLabel(Begin);
-
// For each abbrevation.
for (unsigned i = 0, N = Abbrevs->size(); i < N; ++i) {
// Get abbreviation data
// Mark end of abbreviations.
Asm->EmitULEB128(0, "EOM(3)");
-
- MCSymbol *End = Asm->GetTempSymbol(Section->getLabelEndName());
- Asm->OutStreamer.EmitLabel(End);
}
}
Asm->OutStreamer.AddComment("DWARF version number");
Asm->EmitInt16(DD->getDwarfVersion());
Asm->OutStreamer.AddComment("Offset Into Abbrev. Section");
- Asm->EmitSectionOffset(Asm->GetTempSymbol(ASection->getLabelBeginName()),
- ASectionSym);
+ // We share one abbreviations table across all compilation units so it's
+ // always at the start of the section. Use a relocatable offset where needed
+ // to ensure linking doesn't invalidate that offset.
+ Asm->EmitSectionOffset(ASectionSym, ASectionSym);
Asm->OutStreamer.AddComment("Address Size (in bytes)");
Asm->EmitInt8(Asm->getDataLayout().getPointerSize());
}