Darwin X86 external weak linkage support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32065 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86AsmPrinter.cpp b/lib/Target/X86/X86AsmPrinter.cpp
index cb792ad..f81a33e 100644
--- a/lib/Target/X86/X86AsmPrinter.cpp
+++ b/lib/Target/X86/X86AsmPrinter.cpp
@@ -283,10 +283,7 @@
O << "\t.ascii \" -export:" << *i << "\"\n";
}
- if (Subtarget->isTargetDarwin()) {
- if (ExtWeakSymbols.begin() != ExtWeakSymbols.end())
- assert(0 && "External weak linkage for Darwin not implemented yet");
- } else if (Subtarget->isTargetCygwin()) {
+ if (Subtarget->isTargetCygwin()) {
// There is no external weak linkage on Mingw32 platform.
// Defaulting to external
} else {
@@ -296,7 +293,8 @@
for (std::set<std::string>::iterator i = ExtWeakSymbols.begin(),
e = ExtWeakSymbols.end();
i != e; ++i) {
- O << "\t.weak " << *i << "\n";
+ O << (Subtarget->isTargetDarwin() ? "\t.weak_reference" : "\t.weak")
+ << " " << *i << "\n";
}
}