From 6cfae07011d50127089bc1ae02837f924cefccb2 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 24 Apr 2011 01:32:09 +0200 Subject: re PR preprocessor/48740 (Raw C++0x strings and trigraphs mix badly) PR preprocessor/48740 * lex.c (lex_raw_string): When raw string ends with ??) followed by raw prefix and ", ensure it is preprocessed with ??) rather than ??]. * c-c++-common/raw-string-11.c: New test. From-SVN: r172903 --- libcpp/ChangeLog | 7 +++++++ libcpp/lex.c | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'libcpp') diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index eb93719e..2601302 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,10 @@ +2011-04-24 Jakub Jelinek + + PR preprocessor/48740 + * lex.c (lex_raw_string): When raw string ends with + ??) followed by raw prefix and ", ensure it is preprocessed + with ??) rather than ??]. + 2011-04-20 Jim Meyering * files.c (destroy_cpp_file): Remove useless if-before-free. diff --git a/libcpp/lex.c b/libcpp/lex.c index c9b5c95..3bf4886 100644 --- a/libcpp/lex.c +++ b/libcpp/lex.c @@ -1410,7 +1410,9 @@ lex_raw_string (cpp_reader *pfile, cpp_token *token, const uchar *base, raw_prefix_len) == 0 && cur[raw_prefix_len+1] == '"') { - cur += raw_prefix_len+2; + BUF_APPEND (")", 1); + base++; + cur += raw_prefix_len + 2; goto break_outer_loop; } else -- cgit v1.1