diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index cdbe62d104c..0e274c70cc0 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -297,8 +297,8 @@ void CWriter::printConstantArray(ConstantArray *CPA) { (unsigned char)cast(CPA->getOperand(i))->getValue(); if (isprint(C)) { - if (C == '"') - Out << "\\\""; + if (C == '"' || C == '\\') + Out << "\\" << C; else Out << C; } else { diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp index cdbe62d104c..0e274c70cc0 100644 --- a/lib/Target/CBackend/Writer.cpp +++ b/lib/Target/CBackend/Writer.cpp @@ -297,8 +297,8 @@ void CWriter::printConstantArray(ConstantArray *CPA) { (unsigned char)cast(CPA->getOperand(i))->getValue(); if (isprint(C)) { - if (C == '"') - Out << "\\\""; + if (C == '"' || C == '\\') + Out << "\\" << C; else Out << C; } else {