Record weak external linkage in a case where we were
missing it. gcc.dg/darwin-weakimport-2.c. Handle common and weak differently for darwin ppc32. llvm-svn: 51201
This commit is contained in:
parent
e1f6e4b21d
commit
2e1d5e487b
|
@ -393,6 +393,8 @@ void PPCAsmPrinter::printOp(const MachineOperand &MO) {
|
|||
GV->hasLinkOnceLinkage() || GV->hasCommonLinkage()))) {
|
||||
GVStubs.insert(Name);
|
||||
O << "L" << Name << "$non_lazy_ptr";
|
||||
if (GV->hasExternalWeakLinkage())
|
||||
ExtWeakSymbols.insert(GV);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -948,6 +950,16 @@ bool DarwinAsmPrinter::doFinalization(Module &M) {
|
|||
} else if (I->hasInternalLinkage()) {
|
||||
SwitchToDataSection("\t.data", I);
|
||||
O << TAI->getLCOMMDirective() << name << "," << Size << "," << Align;
|
||||
} else if (!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 {
|
||||
SwitchToDataSection("\t.data", I);
|
||||
O << ".comm " << name << "," << Size;
|
||||
|
|
Loading…
Reference in New Issue