[PATCH] libcpp: Fix up -fdirectives-only handling of // comments on last line not terminated with newline [PR100646]
Marek Polacek
polacek@redhat.com
Wed May 19 14:23:11 GMT 2021
On Wed, May 19, 2021 at 09:54:07AM +0200, Jakub Jelinek wrote:
> Hi!
>
> 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.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2021-05-19 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.
>
> --- libcpp/lex.c.jj 2021-05-12 15:13:57.000000000 +0200
> +++ libcpp/lex.c 2021-05-18 19:48:04.211383565 +0200
> @@ -4480,6 +4480,8 @@ cpp_directive_only_process (cpp_reader *
> break;
> }
> }
> + if (pos >= limit && !is_block)
> + goto done_comment;
The goto seems unnecessary since we're only skipping...
> cpp_error_with_line (pfile, CPP_DL_ERROR, sloc, 0,
> "unterminated comment");
...this line, so just adjust the condition? Were you just trying to be
consistent with the gotos above?
The patch is OK either way.
> done_comment:
Marek
More information about the Gcc-patches
mailing list