summaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorEdward Smith-Rowland <3dw4rd@verizon.net>2014-05-21 00:35:29 +0000
committerEdward Smith-Rowland <emsr@gcc.gnu.org>2014-05-21 00:35:29 +0000
commit49039169f30099ed84696aadd872653b03ecfde3 (patch)
treea86ac06d461f5c244039fdc4fc80a89810ffe1a3 /libcpp
parent956dd0932cef3c45b49405d3c64c46fc67da12c2 (diff)
downloadgcc-49039169f30099ed84696aadd872653b03ecfde3.tar.gz
re PR c++/61038 (g++ -E is unusable with UDL strings)
gcc/testsuite/ 2014-05-20 Edward Smith-Rowland <3dw4rd@verizon.net> PR C++/61038 * g++.dg/cpp0x/pr61038.C: New. libcpp/ 2014-05-20 Edward Smith-Rowland <3dw4rd@verizon.net> PR C++/61038 * macro.c (stringify_arg (cpp_reader *, macro_arg *)): Check for user-defined literal strings and user-defined literal chars to escape necessary characters. From-SVN: r210666
Diffstat (limited to 'libcpp')
-rw-r--r--libcpp/ChangeLog7
-rw-r--r--libcpp/macro.c3
2 files changed, 10 insertions, 0 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index e767aa518db..bb44d3ce5b3 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,10 @@
+2014-05-20 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR C++/61038
+ * macro.c (stringify_arg (cpp_reader *, macro_arg *)):
+ Check for user-defined literal strings and user-defined literal chars
+ to escape necessary characters.
+
2014-05-20 Richard Biener <rguenther@suse.de>
* configure.ac: Copy gcc logic of detecting a 64bit type.
diff --git a/libcpp/macro.c b/libcpp/macro.c
index 11e50f4849c..c3db9a277a3 100644
--- a/libcpp/macro.c
+++ b/libcpp/macro.c
@@ -494,6 +494,9 @@ stringify_arg (cpp_reader *pfile, macro_arg *arg)
|| token->type == CPP_STRING16 || token->type == CPP_CHAR16
|| token->type == CPP_UTF8STRING);
+ escape_it = escape_it || cpp_userdef_string_p (token->type)
+ || cpp_userdef_char_p (token->type);
+
/* Room for each char being written in octal, initial space and
final quote and NUL. */
len = cpp_token_len (token);