Fix Alpha test and support for private linkage.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 15 Jan 2009 21:51:46 +0000 (21:51 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 15 Jan 2009 21:51:46 +0000 (21:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62282 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
test/CodeGen/Alpha/private.ll

index b2e63e606f43ae714f63e50991dbaa9e16737553..b2b8fcdf3833bc48a86cf4b87ba653ad262dca2d 100644 (file)
@@ -155,6 +155,7 @@ bool AlphaAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
   switch (F->getLinkage()) {
   default: assert(0 && "Unknown linkage type!");
   case Function::InternalLinkage:  // Symbols default to internal.
+  case Function::PrivateLinkage:
     break;
    case Function::ExternalLinkage:
      O << "\t.globl " << CurrentFnName << "\n";
@@ -169,7 +170,6 @@ bool AlphaAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
 
   O << "\t.ent " << CurrentFnName << "\n";
 
-  assert (!F->hasPrivateLinkage() && "add private prefix.");
   O << CurrentFnName << ":\n";
 
   // Print out code for the function.
@@ -238,6 +238,7 @@ void AlphaAsmPrinter::printModuleLevelGV(const GlobalVariable* GVar) {
       O << TAI->getGlobalDirective() << name << "\n";
       break;
     case GlobalValue::InternalLinkage:
+    case GlobalValue::PrivateLinkage:
       break;
     default:
       assert(0 && "Unknown linkage type!");
index 8bb82536554708d41727753751434102778781de..2d9ed1e413db57a713964f5af0ea7aea908b399a 100644 (file)
@@ -1,10 +1,10 @@
 ; Test to make sure that the 'private' is used correctly.
 ;
-; RUN: llvm-as < %s | llc > %t
-; RUN: grep .Lfoo: %t
-; RUN: grep call.*\.Lfoo %t
-; RUN: grep .Lbaz: %t
-; RUN: grep movl.*\.Lbaz %t
+; RUN: llvm-as < %s | llc -march=alpha > %t
+; RUN: grep \\\$foo: %t
+; RUN: grep bsr.*\\\$\\\$foo %t
+; RUN: grep \\\$baz: %t
+; RUN: grep ldah.*\\\$baz %t
 
 declare void @foo()