diff options
Diffstat (limited to 'lib/CodeGen/AsmPrinter.cpp')
-rw-r--r-- | lib/CodeGen/AsmPrinter.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp index 8db6a5b29b..4dce674575 100644 --- a/lib/CodeGen/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter.cpp @@ -559,13 +559,20 @@ static void printStringChar(std::ostream &O, unsigned char C) { /// Special characters are emitted properly. /// \literal (Eg. '\t') \endliteral void AsmPrinter::EmitString(const std::string &String) const { - O << TAI->getAsciiDirective() - << "\""; + const char* AscizDirective = TAI->getAscizDirective(); + if (AscizDirective) + O << AscizDirective; + else + O << TAI->getAsciiDirective(); + O << "\""; for (unsigned i = 0, N = String.size(); i < N; ++i) { unsigned char C = String[i]; printStringChar(O, C); } - O << "\\0\""; + if (AscizDirective) + O << "\""; + else + O << "\\0\""; } |