diff options
-rwxr-xr-x | lib/Target/X86/X86ATTAsmPrinter.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Target/X86/X86ATTAsmPrinter.cpp b/lib/Target/X86/X86ATTAsmPrinter.cpp index e344892841..d71bc784df 100755 --- a/lib/Target/X86/X86ATTAsmPrinter.cpp +++ b/lib/Target/X86/X86ATTAsmPrinter.cpp @@ -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. |