[PATCH] Fix error level of warning about C++ style comments

Jakub Jelinek jakub@redhat.com
Tue Jul 17 15:07:00 GMT 2018


On Tue, Jul 17, 2018 at 07:51:42AM -0700, Jason Franklin wrote:
> Greetings,
> 
> Below is a simple patch for fixing the error level of an additional note
> that follows a warning about using C++ style comments.  The ChangeLog
> entry is below, followed by the patch.  
> 
> Tried to figure out how to run the tests, but not sure if it's necessary for
> something so simple...  would appreciate some guidance here.
> 
> Let me know if everything looks good.  Thanks!
> 
> 
> 2018-07-17  Jason Franklin  <j_fra@fastmail.us>
> 
> 	* libcpp/lex.c: Fix error level for note following warning about
> 	the use of C++ style comments.

The ChangeLog entry for libcpp/ should not include libcpp/ prefix and
should include the function name, so:
	* lex.c (_cpp_lex_direct): Fix ...

> diff --git a/libcpp/lex.c b/libcpp/lex.c
> index 37c365a3560..4b93691bd1e 100644
> --- a/libcpp/lex.c
> +++ b/libcpp/lex.c
> @@ -2874,7 +2874,7 @@ _cpp_lex_direct (cpp_reader *pfile)
>             {
>               cpp_error (pfile, CPP_DL_PEDWARN,
>                          "C++ style comments are not allowed in ISO C90");
> -             cpp_error (pfile, CPP_DL_PEDWARN,
> +             cpp_error (pfile, CPP_DL_NOTE,
>                          "(this will be reported only once per input file)");

This has the undesirable effect that for say:
// foo
int i;

you get with this patch:
gcc -S -pedantic test.c -std=gnu89 -w
test.c:1:1: note: (this will be reported only once per input file)
 // foo
 ^

while before that you'd get no diagnostics at all.

So, instead it should do:
	      if (cpp_error (pfile, CPP_DL_PEDWARN,
			     "C++ style comments are not allowed in ISO C90"))
		cpp_error (pfile, CPP_DL_NOTE,
			   "(this will be reported only once per input file)");
which makes sure the note is emitted only if the warning/error before it is
emitted.

>               buffer->warned_cplusplus_comments = 1;
>             }
> @@ -2885,7 +2885,7 @@ _cpp_lex_direct (cpp_reader *pfile)
>             {
>               cpp_error (pfile, CPP_DL_WARNING,
>                          "C++ style comments are incompatible with C90");
> -             cpp_error (pfile, CPP_DL_WARNING,
> +             cpp_error (pfile, CPP_DL_NOTE,
>                          "(this will be reported only once per input file)");
>               buffer->warned_cplusplus_comments = 1;
>             }

Likewise.  Furthermore, there is
                  cpp_error (pfile, CPP_DL_ERROR,
                             "C++ style comments are not allowed in ISO C90");
                  cpp_error (pfile, CPP_DL_ERROR,
                             "(this will be reported only once per input "
                             "file)");
a few lines below, this third spot needs a similar change too.

	Jakub



More information about the Gcc-patches mailing list