Fixes escapeing bug in strings. Fixes test case test/Regression/CBackend/2002-11...
authorNick Hildenbrandt <hldnbrnd@uiuc.edu>
Wed, 6 Nov 2002 21:40:23 +0000 (21:40 +0000)
committerNick Hildenbrandt <hldnbrnd@uiuc.edu>
Wed, 6 Nov 2002 21:40:23 +0000 (21:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4583 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/CBackend/CBackend.cpp
lib/Target/CBackend/Writer.cpp

index cdbe62d104cb4e3b1cb3c8287f16928714e52c92..0e274c70cc0c6b00942b362cb60f381b2c9646c0 100644 (file)
@@ -297,8 +297,8 @@ void CWriter::printConstantArray(ConstantArray *CPA) {
         (unsigned char)cast<ConstantUInt>(CPA->getOperand(i))->getValue();
       
       if (isprint(C)) {
-        if (C == '"')
-          Out << "\\\"";
+        if (C == '"' || C == '\\')
+          Out << "\\" << C;
         else
           Out << C;
       } else {
index cdbe62d104cb4e3b1cb3c8287f16928714e52c92..0e274c70cc0c6b00942b362cb60f381b2c9646c0 100644 (file)
@@ -297,8 +297,8 @@ void CWriter::printConstantArray(ConstantArray *CPA) {
         (unsigned char)cast<ConstantUInt>(CPA->getOperand(i))->getValue();
       
       if (isprint(C)) {
-        if (C == '"')
-          Out << "\\\"";
+        if (C == '"' || C == '\\')
+          Out << "\\" << C;
         else
           Out << C;
       } else {