From fd89543e7df83970b37220006a50869dbce95ef8 Mon Sep 17 00:00:00 2001 From: Andrew Lenharth Date: Sat, 4 Feb 2006 19:13:09 +0000 Subject: [PATCH] linkage fix for weak functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25976 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Alpha/AlphaAsmPrinter.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/Target/Alpha/AlphaAsmPrinter.cpp b/lib/Target/Alpha/AlphaAsmPrinter.cpp index 133f6c60393..3d88bc4fb61 100644 --- a/lib/Target/Alpha/AlphaAsmPrinter.cpp +++ b/lib/Target/Alpha/AlphaAsmPrinter.cpp @@ -173,9 +173,22 @@ bool AlphaAsmPrinter::runOnMachineFunction(MachineFunction &MF) { EmitConstantPool(MF.getConstantPool()); // Print out labels for the function. - SwitchSection("\t.section .text", MF.getFunction()); - EmitAlignment(4); - O << "\t.globl " << CurrentFnName << "\n"; + const Function *F = MF.getFunction(); + SwitchSection(".text", F); + EmitAlignment(4, F); + switch (F->getLinkage()) { + default: assert(0 && "Unknown linkage type!"); + case Function::InternalLinkage: // Symbols default to internal. + break; + case Function::ExternalLinkage: + O << "\t.globl " << CurrentFnName << "\n"; + break; + case Function::WeakLinkage: + case Function::LinkOnceLinkage: + O << "\t.weak " << CurrentFnName << "\n"; + break; + } + O << "\t.ent " << CurrentFnName << "\n"; O << CurrentFnName << ":\n";