aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2021-05-20 09:09:07 +0200
committerJakub Jelinek <jakub@redhat.com>2021-05-20 09:09:07 +0200
commitd15a2d261b24adcbfe5e663b15dde3df5d2b3486 (patch)
tree0d66af0a7621c749e2a64d876f63c17e9de21133 /gcc
parent75ab8b4829dec8c70470e8225c9add964f71ed74 (diff)
downloadgcc-d15a2d261b24adcbfe5e663b15dde3df5d2b3486.zip
gcc-d15a2d261b24adcbfe5e663b15dde3df5d2b3486.tar.gz
gcc-d15a2d261b24adcbfe5e663b15dde3df5d2b3486.tar.bz2
libcpp: Fix up -fdirectives-only handling of // comments on last line not terminated with newline [PR100646]
As can be seen on the testcases, before the -fdirectives-only preprocessing rewrite the preprocessor would assume // comments are terminated by the end of file even when newline wasn't there, but now we error out. The following patch restores the previous behavior. 2021-05-20 Jakub Jelinek <jakub@redhat.com> PR preprocessor/100646 * lex.c (cpp_directive_only_process): Treat end of file as termination for !is_block comments. * gcc.dg/cpp/pr100646-1.c: New test. * gcc.dg/cpp/pr100646-2.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/cpp/pr100646-1.c5
-rw-r--r--gcc/testsuite/gcc.dg/cpp/pr100646-2.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/cpp/pr100646-1.c b/gcc/testsuite/gcc.dg/cpp/pr100646-1.c
new file mode 100644
index 0000000..8f2caf4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/pr100646-1.c
@@ -0,0 +1,5 @@
+/* PR preprocessor/100646 */
+/* { dg-do compile } */
+/* { dg-options "-fdirectives-only -save-temps -std=c17" } */
+int main () { return 0; }
+// Not newline terminated \ No newline at end of file
diff --git a/gcc/testsuite/gcc.dg/cpp/pr100646-2.c b/gcc/testsuite/gcc.dg/cpp/pr100646-2.c
new file mode 100644
index 0000000..a1deba1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/pr100646-2.c
@@ -0,0 +1,6 @@
+/* PR preprocessor/100646 */
+/* { dg-do compile } */
+/* { dg-options "-fdirectives-only -save-temps -std=c17" } */
+int main () { return 0; }
+/* { dg-warning "backslash-newline at end of file" "" { target *-*-* } .+1 } */
+// Not newline terminated\ \ No newline at end of file