Reapply section moving, make sure string section is output last.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168736 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher 2012-11-27 22:43:42 +00:00
parent 6e99a8cb37
commit 4288502af9

View File

@ -903,11 +903,60 @@ void DwarfDebug::endModule() {
// Emit initial sections.
emitSectionLabels();
// Emit all the DIEs into a debug info section
emitDebugInfo();
if (!useDwarfFission()) {
// Emit all the DIEs into a debug info section.
emitDebugInfo();
// Corresponding abbreviations into a abbrev section.
emitAbbreviations();
// Corresponding abbreviations into a abbrev section.
emitAbbreviations();
// Emit info into a debug loc section.
emitDebugLoc();
// Emit info into a debug aranges section.
emitDebugARanges();
// Emit info into a debug ranges section.
emitDebugRanges();
// Emit info into a debug macinfo section.
emitDebugMacInfo();
// Emit inline info.
// TODO: When we don't need the option anymore we
// can remove all of the code that this section
// depends upon.
if (useDarwinGDBCompat())
emitDebugInlineInfo();
} else {
// TODO: Fill this in for Fission sections and separate
// out information into new sections.
// Emit all the DIEs into a debug info section.
emitDebugInfo();
// Corresponding abbreviations into a abbrev section.
emitAbbreviations();
// Emit info into a debug loc section.
emitDebugLoc();
// Emit info into a debug aranges section.
emitDebugARanges();
// Emit info into a debug ranges section.
emitDebugRanges();
// Emit info into a debug macinfo section.
emitDebugMacInfo();
// Emit inline info.
// TODO: When we don't need the option anymore we
// can remove all of the code that this section
// depends upon.
if (useDarwinGDBCompat())
emitDebugInlineInfo();
}
// Emit info into the dwarf accelerator table sections.
if (useDwarfAccelTables()) {
@ -923,26 +972,7 @@ void DwarfDebug::endModule() {
if (useDarwinGDBCompat())
emitDebugPubTypes();
// Emit info into a debug loc section.
emitDebugLoc();
// Emit info into a debug aranges section.
emitDebugARanges();
// Emit info into a debug ranges section.
emitDebugRanges();
// Emit info into a debug macinfo section.
emitDebugMacInfo();
// Emit inline info.
// TODO: When we don't need the option anymore we
// can remove all of the code that this section
// depends upon.
if (useDarwinGDBCompat())
emitDebugInlineInfo();
// Emit info into a debug str section.
// Finally emit string information into a string table.
emitDebugStr();
// clean up.