diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-09-07 21:08:01 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-09-07 21:08:01 +0000 |
commit | a9e37c5eaf79c3a32f2921536fb7e12514e86fb2 (patch) | |
tree | b0906a5545739e94cfa1a199df774d59929bba12 /lib/MC/MCAsmInfoCOFF.cpp | |
parent | b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7b (diff) | |
download | external_llvm-a9e37c5eaf79c3a32f2921536fb7e12514e86fb2.zip external_llvm-a9e37c5eaf79c3a32f2921536fb7e12514e86fb2.tar.gz external_llvm-a9e37c5eaf79c3a32f2921536fb7e12514e86fb2.tar.bz2 |
Fix alignment of .comm and .lcomm on mingw32.
For some reason .lcomm uses byte alignment and .comm log2 alignment so we can't
use the same setting for both. Fix this by reintroducing the LCOMM enum.
I verified this against mingw's gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163420 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCAsmInfoCOFF.cpp')
-rw-r--r-- | lib/MC/MCAsmInfoCOFF.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/MC/MCAsmInfoCOFF.cpp b/lib/MC/MCAsmInfoCOFF.cpp index 4b426f8..fd79193 100644 --- a/lib/MC/MCAsmInfoCOFF.cpp +++ b/lib/MC/MCAsmInfoCOFF.cpp @@ -19,8 +19,10 @@ void MCAsmInfoCOFF::anchor() { } MCAsmInfoCOFF::MCAsmInfoCOFF() { GlobalPrefix = "_"; - COMMDirectiveAlignmentIsInBytes = true; - LCOMMDirectiveSupportsAlignment = true; + // MingW 4.5 and later support .comm with log2 alignment, but .lcomm uses byte + // alignment. + COMMDirectiveAlignmentIsInBytes = false; + LCOMMDirectiveAlignmentType = LCOMM::ByteAlignment; HasDotTypeDotSizeDirective = false; HasSingleParameterDotFile = false; PrivateGlobalPrefix = "L"; // Prefix for private global symbols |