summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremsr <emsr@138bc75d-0d04-0410-961f-82ee72b054a4>2014-07-09 13:33:58 +0000
committeremsr <emsr@138bc75d-0d04-0410-961f-82ee72b054a4>2014-07-09 13:33:58 +0000
commit8947e5dcd0a9b872bfdf459f27da315ed2035fc5 (patch)
tree2945161d6be14d712bccdf9a00c6315c554a985d
parent661a9b00c9e0a08c80e65471e4951a1aa4c2c145 (diff)
downloadgcc-8947e5dcd0a9b872bfdf459f27da315ed2035fc5.tar.gz
libcpp/
2014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net> PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped by preprocessor * lex.c (lex_raw_string ()): Do not warn about invalid suffix if skipping. (lex_string ()): Ditto. gcc/testsuite/ 2014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net> PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped g++.dg/cpp0x/pr58155.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212392 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr58155.C13
-rw-r--r--libcpp/ChangeLog7
-rw-r--r--libcpp/lex.c4
4 files changed, 27 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c02b10c1061..9c42d59d936 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped
+ g++.dg/cpp0x/pr58155.C: New.
+
2014-07-09 Dominique d'Humieres <dominiq@lps.ens.fr>
PR testsuite/61453
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr58155.C b/gcc/testsuite/g++.dg/cpp0x/pr58155.C
new file mode 100644
index 00000000000..60b02ab657d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/pr58155.C
@@ -0,0 +1,13 @@
+// { dg-do compile { target c++11 } }
+
+#define BAZ "baz"
+
+#if 0
+
+"bar"BAZ
+
+R"(
+ bar
+)"BAZ
+
+#endif
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index e6af9f722e5..f22471b229e 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,10 @@
+2014-07-09 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/58155 - -Wliteral-suffix warns about tokens which are skipped
+ by preprocessor
+ * lex.c (lex_raw_string ()): Do not warn about invalid suffix
+ if skipping. (lex_string ()): Ditto.
+
2014-06-04 Edward Smith-Rowland <3dw4rd@verizon.net>
PR c++/61038
diff --git a/libcpp/lex.c b/libcpp/lex.c
index b7836225332..9130cbcee91 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -1646,7 +1646,7 @@ lex_raw_string (cpp_reader *pfile, cpp_token *token, const uchar *base,
if (is_macro (pfile, cur))
{
/* Raise a warning, but do not consume subsequent tokens. */
- if (CPP_OPTION (pfile, warn_literal_suffix))
+ if (CPP_OPTION (pfile, warn_literal_suffix) && !pfile->state.skipping)
cpp_warning_with_line (pfile, CPP_W_LITERAL_SUFFIX,
token->src_loc, 0,
"invalid suffix on literal; C++11 requires "
@@ -1775,7 +1775,7 @@ lex_string (cpp_reader *pfile, cpp_token *token, const uchar *base)
if (is_macro (pfile, cur))
{
/* Raise a warning, but do not consume subsequent tokens. */
- if (CPP_OPTION (pfile, warn_literal_suffix))
+ if (CPP_OPTION (pfile, warn_literal_suffix) && !pfile->state.skipping)
cpp_warning_with_line (pfile, CPP_W_LITERAL_SUFFIX,
token->src_loc, 0,
"invalid suffix on literal; C++11 requires "