aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/CBackend
diff options
context:
space:
mode:
authorNick Hildenbrandt <hldnbrnd@uiuc.edu>2002-11-06 21:40:23 +0000
committerNick Hildenbrandt <hldnbrnd@uiuc.edu>2002-11-06 21:40:23 +0000
commit088b472eed92260ac34a6602752ad4abed291e31 (patch)
tree3764060c725adba5e377bbbd6e3dd9d2df3e966c /lib/Target/CBackend
parent6d608154d68e5cb97ee1adc74d4ae03683dfaff8 (diff)
downloadexternal_llvm-088b472eed92260ac34a6602752ad4abed291e31.zip
external_llvm-088b472eed92260ac34a6602752ad4abed291e31.tar.gz
external_llvm-088b472eed92260ac34a6602752ad4abed291e31.tar.bz2
Fixes escapeing bug in strings. Fixes test case test/Regression/CBackend/2002-11-06-PrintEscaped.c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4583 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CBackend')
-rw-r--r--lib/Target/CBackend/CBackend.cpp4
-rw-r--r--lib/Target/CBackend/Writer.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index cdbe62d..0e274c7 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<ConstantUInt>(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 cdbe62d..0e274c7 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<ConstantUInt>(CPA->getOperand(i))->getValue();
if (isprint(C)) {
- if (C == '"')
- Out << "\\\"";
+ if (C == '"' || C == '\\')
+ Out << "\\" << C;
else
Out << C;
} else {