Treat common as distinct from weak global on Darwin x86.
authorDale Johannesen <dalej@apple.com>
Fri, 16 May 2008 00:52:06 +0000 (00:52 +0000)
committerDale Johannesen <dalej@apple.com>
Fri, 16 May 2008 00:52:06 +0000 (00:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51172 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86AsmPrinter.cpp

index 3898a9ee4656f00049f96794f2009ab1fba89caa..a99588b13b300cca4b322c8507a7ebfc2a501984 100644 (file)
@@ -211,6 +211,16 @@ bool X86SharedAsmPrinter::doFinalization(Module &M) {
             O << TAI->getLCOMMDirective() << name << "," << Size;
             if (Subtarget->isTargetDarwin())
               O << "," << Align;
+          } else if (Subtarget->isTargetDarwin() && !I->hasCommonLinkage()) {
+            O << "\t.globl " << name << "\n"
+              << TAI->getWeakDefDirective() << name << "\n";
+            SwitchToDataSection("\t.section __DATA,__datacoal_nt,coalesced", I);
+            EmitAlignment(Align, I);
+            O << name << ":\t\t\t\t" << TAI->getCommentString() << " ";
+            PrintUnmangledNameSafely(I, O);
+            O << "\n";
+            EmitGlobalConstant(C);
+            continue;
           } else {
             O << TAI->getCOMMDirective()  << name << "," << Size;