diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/AsmPrinter.cpp | 19 | ||||
-rw-r--r-- | lib/Target/X86/X86ATTAsmPrinter.cpp | 3 |
2 files changed, 15 insertions, 7 deletions
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp index 3f89792053..6548f56f25 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 463016c2dd..a61bb2261d 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"; |