diff options
Diffstat (limited to 'lib/Target/CBackend/CBackend.cpp')
-rw-r--r-- | lib/Target/CBackend/CBackend.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index e54d457512..8b7aba9398 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -287,7 +287,10 @@ void CWriter::printConstantArray(ConstantArray *CPA) { (unsigned char)cast<ConstantUInt>(CPA->getOperand(i))->getValue(); if (isprint(C)) { - Out << C; + if (C == '"') + Out << "\\\""; + else + Out << C; } else { switch (C) { case '\n': Out << "\\n"; break; @@ -295,6 +298,8 @@ void CWriter::printConstantArray(ConstantArray *CPA) { case '\r': Out << "\\r"; break; case '\v': Out << "\\v"; break; case '\a': Out << "\\a"; break; + case '\"': Out << "\\\""; break; + case '\'': Out << "\\\'"; break; default: Out << "\\x"; Out << ( C/16 < 10) ? ( C/16 +'0') : ( C/16 -10+'A'); |