gcc often inserts it's own names for sections (e.g.

gnu.linkonce.t.FunctionName). Convert them to "normal" LLVM names,
otherwise linker won't be able to merge them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32958 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Anton Korobeynikov 2007-01-06 18:24:26 +00:00
parent c2ca99c15a
commit cea9d1d634

View File

@ -80,8 +80,13 @@ bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
X86SharedAsmPrinter::decorateName(CurrentFnName, F);
SwitchToTextSection(getSectionForFunction(*F).c_str(), F);
// Change GNU linkonce to LLVM linkonce name
if (F->hasSection() &&
(F->getSection().find(".gnu.linkonce.t") != std::string::npos))
SwitchToTextSection(getSectionForFunction(*F).c_str(), NULL);
else
SwitchToTextSection(getSectionForFunction(*F).c_str(), F);
switch (F->getLinkage()) {
default: assert(0 && "Unknown linkage type!");
case Function::InternalLinkage: // Symbols default to internal.