aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-family
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2013-07-10 18:49:24 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2013-07-10 18:49:24 +0200
commitc26302d5351c07a12a5c434f392a5df89381dd8e (patch)
treefb33b01daeb32c3b1c99c9c4f1501ea19669801f /gcc/c-family
parentdfeadaa00be8251addff242849f6165ea9ee480c (diff)
downloadgcc-c26302d5351c07a12a5c434f392a5df89381dd8e.zip
gcc-c26302d5351c07a12a5c434f392a5df89381dd8e.tar.gz
gcc-c26302d5351c07a12a5c434f392a5df89381dd8e.tar.bz2
c-ppoutput.c (scan_translation_unit): Call account_for_newlines for all CPP_TOKEN_FLD_STR tokens, not just CPP_COMMENT.
* c-ppoutput.c (scan_translation_unit): Call account_for_newlines for all CPP_TOKEN_FLD_STR tokens, not just CPP_COMMENT. * include/cpplib.h (cpp_token_val_index): Change parameter type to const cpp_token *. * lex.c (cpp_token_val_index): Likewise. * c-c++-common/raw-string-18.c: New test. * c-c++-common/raw-string-19.c: New test. From-SVN: r200878
Diffstat (limited to 'gcc/c-family')
-rw-r--r--gcc/c-family/ChangeLog5
-rw-r--r--gcc/c-family/c-ppoutput.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 0506e55..1211fcc 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,8 @@
+2013-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ * c-ppoutput.c (scan_translation_unit): Call account_for_newlines
+ for all CPP_TOKEN_FLD_STR tokens, not just CPP_COMMENT.
+
2013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57869
diff --git a/gcc/c-family/c-ppoutput.c b/gcc/c-family/c-ppoutput.c
index 4a15346..03b8817 100644
--- a/gcc/c-family/c-ppoutput.c
+++ b/gcc/c-family/c-ppoutput.c
@@ -251,7 +251,11 @@ scan_translation_unit (cpp_reader *pfile)
cpp_output_token (token, print.outf);
}
- if (token->type == CPP_COMMENT)
+ /* CPP_COMMENT tokens and raw-string literal tokens can
+ have embedded new-line characters. Rather than enumerating
+ all the possible token types just check if token uses
+ val.str union member. */
+ if (cpp_token_val_index (token) == CPP_TOKEN_FLD_STR)
account_for_newlines (token->val.str.text, token->val.str.len);
}
}