From a118c2ee89842346ef2fd332c0fea6b931d79483 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 8 Apr 2009 00:28:38 +0000 Subject: [PATCH] change printStringChar to emit characters as unsigned char instead of char, avoiding sign extension for the top octet. For "negative" chars, we'd print stuff like: .asciz "\702... now we print: .asciz "\302... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68577 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 48085d59a26..8fc1b8b0195 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -699,7 +699,7 @@ static inline char toOctal(int X) { /// printStringChar - Print a char, escaped if necessary. /// -static void printStringChar(raw_ostream &O, char C) { +static void printStringChar(raw_ostream &O, unsigned char C) { if (C == '"') { O << "\\\""; } else if (C == '\\') { @@ -733,10 +733,8 @@ void AsmPrinter::EmitString(const std::string &String) const { else O << TAI->getAsciiDirective(); O << '\"'; - for (unsigned i = 0, N = String.size(); i < N; ++i) { - unsigned char C = String[i]; - printStringChar(O, C); - } + for (unsigned i = 0, N = String.size(); i < N; ++i) + printStringChar(O, String[i]); if (AscizDirective) O << '\"'; else @@ -747,10 +745,8 @@ void AsmPrinter::EmitString(const std::string &String) const { /// EmitFile - Emit a .file directive. void AsmPrinter::EmitFile(unsigned Number, const std::string &Name) const { O << "\t.file\t" << Number << " \""; - for (unsigned i = 0, N = Name.size(); i < N; ++i) { - unsigned char C = Name[i]; - printStringChar(O, C); - } + for (unsigned i = 0, N = Name.size(); i < N; ++i) + printStringChar(O, Name[i]); O << '\"'; }