aboutsummaryrefslogtreecommitdiff
path: root/lib/MC/MCAssembler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/MC/MCAssembler.cpp')
-rw-r--r--lib/MC/MCAssembler.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/MC/MCAssembler.cpp b/lib/MC/MCAssembler.cpp
index 106a0ed666..7bcce2e7e3 100644
--- a/lib/MC/MCAssembler.cpp
+++ b/lib/MC/MCAssembler.cpp
@@ -459,11 +459,9 @@ void MCAssembler::LayoutSection(MCAsmLayout &Layout,
// Unless this section is virtual (where we are allowed to adjust the offset
// freely), the padding goes in the previous section.
if (!IsVirtual) {
- // Find the previous non-virtual section.
- iterator it = &SD;
- assert(it != begin() && "Invalid initial section address!");
- for (--it; getBackend().isVirtualSection(it->getSection()); --it) ;
- Layout.setSectionFileSize(&*it, Layout.getSectionFileSize(&*it) + Pad);
+ assert(SectionOrderIndex && "Invalid initial section address!");
+ MCSectionData *Prev = Layout.getSectionOrder()[SectionOrderIndex - 1];
+ Layout.setSectionFileSize(Prev, Layout.getSectionFileSize(Prev) + Pad);
}
StartAddress += Pad;