summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-09-22 17:43:04 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-09-22 17:43:04 +0000
commit9bac6cb544232636c90badadaf3107410ab777f1 (patch)
treee32e8f67f32ce73846254011a05bead8e19dfc12 /llvm/lib
parent284eebc1ae1f5617d4e808cfcea6e578a63dd4d0 (diff)
downloadbcm5719-llvm-9bac6cb544232636c90badadaf3107410ab777f1.tar.gz
bcm5719-llvm-9bac6cb544232636c90badadaf3107410ab777f1.zip
Correctly align bss.
llvm-svn: 114556
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/MC/MCELFStreamer.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp
index fd015946137..9b46b836cae 100644
--- a/llvm/lib/MC/MCELFStreamer.cpp
+++ b/llvm/lib/MC/MCELFStreamer.cpp
@@ -322,9 +322,15 @@ void MCELFStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
SectionKind::getBSS());
MCSectionData &SectData = getAssembler().getOrCreateSectionData(*Section);
+ new MCAlignFragment(ByteAlignment, 0, 1, ByteAlignment, &SectData);
+
MCFragment *F = new MCFillFragment(0, 0, Size, &SectData);
SD.setFragment(F);
Symbol->setSection(*Section);
+
+ // Update the maximum alignment of the section if necessary.
+ if (ByteAlignment > SectData.getAlignment())
+ SectData.setAlignment(ByteAlignment);
} else {
SD.setCommon(Size, ByteAlignment);
}
OpenPOWER on IntegriCloud