From ab8faba2fb17e540751adf75161a25b18c94b818 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Tue, 8 Jul 2008 16:40:43 +0000 Subject: [PATCH] Unbreak C++ tests on x86 Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53237 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/AsmPrinter.h | 5 +++-- lib/CodeGen/AsmPrinter.cpp | 19 ++++++++++++++----- lib/Target/X86/X86ATTAsmPrinter.cpp | 3 +-- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h index 3514af7c810..e41d8dca298 100644 --- a/include/llvm/CodeGen/AsmPrinter.h +++ b/include/llvm/CodeGen/AsmPrinter.h @@ -351,8 +351,9 @@ namespace llvm { /// printSuffixedName - This prints a name with preceding /// getPrivateGlobalPrefix and the specified suffix, handling quoted names /// correctly. - void printSuffixedName(const char *Name, const char* Suffix); - void printSuffixedName(std::string &Name, const char* Suffix); + void printSuffixedName(const char *Name, const char *Suffix, + const char *Prefix = 0); + void printSuffixedName(const std::string &Name, const char* Suffix); private: void EmitLLVMUsedList(Constant *List); diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp index 3f89792053b..6548f56f25d 100644 --- a/lib/CodeGen/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter.cpp @@ -1445,14 +1445,23 @@ void AsmPrinter::printDataDirective(const Type *type) { } } -void AsmPrinter::printSuffixedName(const char *Name, const char* Suffix) { +void AsmPrinter::printSuffixedName(const char *Name, const char *Suffix, + const char *Prefix) { if (Name[0]=='\"') - O << '\"' << TAI->getPrivateGlobalPrefix() << - Name[1] << Suffix << '\"'; + O << '\"'; + O << TAI->getPrivateGlobalPrefix(); + if (Prefix) O << Prefix; + if (Name[0]=='\"') + O << '\"'; + if (Name[0]=='\"') + O << Name[1]; else - O << TAI->getPrivateGlobalPrefix() << Name << Suffix; + O << Name; + O << Suffix; + if (Name[0]=='\"') + O << '\"'; } -void AsmPrinter::printSuffixedName(std::string &Name, const char* Suffix) { +void AsmPrinter::printSuffixedName(const std::string &Name, const char* Suffix) { printSuffixedName(Name.c_str(), Suffix); } diff --git a/lib/Target/X86/X86ATTAsmPrinter.cpp b/lib/Target/X86/X86ATTAsmPrinter.cpp index 463016c2dd3..a61bb2261d6 100644 --- a/lib/Target/X86/X86ATTAsmPrinter.cpp +++ b/lib/Target/X86/X86ATTAsmPrinter.cpp @@ -977,8 +977,7 @@ void X86ATTAsmPrinter::printModuleLevelGV(const GlobalVariable* GVar) { /// printGVStub - Print stub for a global value. /// void X86ATTAsmPrinter::printGVStub(const char *GV, const char *Prefix) { - if (Prefix) O << Prefix; - printSuffixedName(GV, "$non_lazy_ptr"); + printSuffixedName(GV, "$non_lazy_ptr", Prefix); O << ":\n\t.indirect_symbol "; if (Prefix) O << Prefix; O << GV << "\n\t.long\t0\n";