aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2006-10-22 21:37:13 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2006-10-22 21:37:13 +0000
commit1a3ecbb4a63980bdb0b67d7344e528a72cc94d15 (patch)
tree0e18a16769812c4b1ca892ab4bc83a7f2a431147
parentd2c1d2200b4d1012c61c4bcddfbc6fefcf3a05e1 (diff)
downloadexternal_llvm-1a3ecbb4a63980bdb0b67d7344e528a72cc94d15.zip
external_llvm-1a3ecbb4a63980bdb0b67d7344e528a72cc94d15.tar.gz
external_llvm-1a3ecbb4a63980bdb0b67d7344e528a72cc94d15.tar.bz2
Do section switching right way for Mingw\Cygwin and Linux.
This will allow (after llvm-gcc linkage fix) more dummy tests using libstdc++ to pass on mingw :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31120 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86AsmPrinter.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/Target/X86/X86AsmPrinter.cpp b/lib/Target/X86/X86AsmPrinter.cpp
index bab80db..2438546 100644
--- a/lib/Target/X86/X86AsmPrinter.cpp
+++ b/lib/Target/X86/X86AsmPrinter.cpp
@@ -180,12 +180,18 @@ bool X86SharedAsmPrinter::doFinalization(Module &M) {
<< "\t.weak_definition " << name << "\n";
SwitchToDataSection(".section __DATA,__const_coal,coalesced", I);
} else if (Subtarget->isTargetCygwin()) {
- O << "\t.section\t.data$linkonce." << name << ",\"aw\"\n"
- << "\t.globl " << name << "\n"
+ std::string SectionName(".section\t.data$linkonce." +
+ name +
+ ",\"aw\"\n");
+ SwitchToDataSection(SectionName.c_str(), I);
+ O << "\t.globl " << name << "\n"
<< "\t.linkonce same_size\n";
} else {
- O << "\t.section\t.llvm.linkonce.d." << name << ",\"aw\",@progbits\n"
- << "\t.weak " << name << "\n";
+ std::string SectionName("\t.section\t.llvm.linkonce.d." +
+ name +
+ ",\"aw\",@progbits\n");
+ SwitchToDataSection(SectionName.c_str(), I);
+ O << "\t.weak " << name << "\n";
}
break;
case GlobalValue::AppendingLinkage: