diff options
author | Dale Johannesen <dalej@apple.com> | 2008-05-16 00:52:06 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2008-05-16 00:52:06 +0000 |
commit | 876dd3ca9ebd34e83dc521967ae8610c94330af8 (patch) | |
tree | 69586230ee8a71bcc0e2ce9a404c1fc7b42abd52 /llvm/lib | |
parent | 2f156ae850da4fb00db1c5d1cac3e7ed1ea43a91 (diff) | |
download | bcm5719-llvm-876dd3ca9ebd34e83dc521967ae8610c94330af8.tar.gz bcm5719-llvm-876dd3ca9ebd34e83dc521967ae8610c94330af8.zip |
Treat common as distinct from weak global on Darwin x86.
llvm-svn: 51172
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/X86AsmPrinter.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86AsmPrinter.cpp b/llvm/lib/Target/X86/X86AsmPrinter.cpp index 3898a9ee465..a99588b13b3 100644 --- a/llvm/lib/Target/X86/X86AsmPrinter.cpp +++ b/llvm/lib/Target/X86/X86AsmPrinter.cpp @@ -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; |