aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/CodeGen/AsmPrinter.cpp19
-rw-r--r--lib/Target/X86/X86ATTAsmPrinter.cpp3
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";