Darwin X86 external weak linkage support.
authorEvan Cheng <evan.cheng@apple.com>
Fri, 1 Dec 2006 07:15:24 +0000 (07:15 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 1 Dec 2006 07:15:24 +0000 (07:15 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32065 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86AsmPrinter.cpp

index cb792ad1ce0be0bbbe8814893546b51a0a7ffff8..f81a33e75f18c9ed4cbd9aa0a1cf8cc263f24484 100644 (file)
@@ -283,10 +283,7 @@ bool X86SharedAsmPrinter::doFinalization(Module &M) {
     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 @@ bool X86SharedAsmPrinter::doFinalization(Module &M) {
     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";
     }
   }