attribs: Add missing auto_diagnostic_group 3 times

Message ID Yzv4q6gMMgJnAMQj@tucnak
State New
Headers
Series attribs: Add missing auto_diagnostic_group 3 times |

Commit Message

Jakub Jelinek Oct. 4, 2022, 9:11 a.m. UTC
  Hi!

In these spots, the error/error_at has some inform afterwards which are
explanation part of the same diagnostics, so should be tied with
auto_diagnostic_group with it.

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

2022-10-04  Jakub Jelinek  <jakub@redhat.com>

	* attribs.cc (handle_ignored_attributes_option, decl_attributes,
	common_function_versions): Use auto_diagnostic_group.


	Jakub
  

Comments

David Malcolm Oct. 4, 2022, 12:27 p.m. UTC | #1
On Tue, 2022-10-04 at 11:11 +0200, Jakub Jelinek wrote:
> Hi!
> 
> In these spots, the error/error_at has some inform afterwards which
> are
> explanation part of the same diagnostics, so should be tied with
> auto_diagnostic_group with it.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

OK for trunk; I think future such patches can be self-approved as per
the "obvious" rule.

Thanks
Dave

> 
> 2022-10-04  Jakub Jelinek  <jakub@redhat.com>
> 
>         * attribs.cc (handle_ignored_attributes_option,
> decl_attributes,
>         common_function_versions): Use auto_diagnostic_group.
> 
> --- gcc/attribs.cc.jj   2022-10-03 18:31:16.130032566 +0200
> +++ gcc/attribs.cc      2022-10-03 21:27:02.364104260 +0200
> @@ -251,6 +251,7 @@ handle_ignored_attributes_option (vec<ch
>        /* We don't accept '::attr'.  */
>        if (cln == nullptr || cln == opt)
>         {
> +         auto_diagnostic_group d;
>           error ("wrong argument to ignored attributes");
>           inform (input_location, "valid format is %<ns::attr%> or
> %<ns::%>");
>           continue;
> @@ -732,6 +733,7 @@ decl_attributes (tree *node, tree attrib
>               || (spec->max_length >= 0
>                   && nargs > spec->max_length))
>             {
> +             auto_diagnostic_group d;
>               error ("wrong number of arguments specified for %qE
> attribute",
>                      name);
>               if (spec->max_length < 0)
> @@ -1167,6 +1169,7 @@ common_function_versions (tree fn1, tree
>               std::swap (fn1, fn2);
>               attr1 = attr2;
>             }
> +         auto_diagnostic_group d;
>           error_at (DECL_SOURCE_LOCATION (fn2),
>                     "missing %<target%> attribute for multi-versioned
> %qD",
>                     fn2);
> 
>         Jakub
>
  

Patch

--- gcc/attribs.cc.jj	2022-10-03 18:31:16.130032566 +0200
+++ gcc/attribs.cc	2022-10-03 21:27:02.364104260 +0200
@@ -251,6 +251,7 @@  handle_ignored_attributes_option (vec<ch
       /* We don't accept '::attr'.  */
       if (cln == nullptr || cln == opt)
 	{
+	  auto_diagnostic_group d;
 	  error ("wrong argument to ignored attributes");
 	  inform (input_location, "valid format is %<ns::attr%> or %<ns::%>");
 	  continue;
@@ -732,6 +733,7 @@  decl_attributes (tree *node, tree attrib
 	      || (spec->max_length >= 0
 		  && nargs > spec->max_length))
 	    {
+	      auto_diagnostic_group d;
 	      error ("wrong number of arguments specified for %qE attribute",
 		     name);
 	      if (spec->max_length < 0)
@@ -1167,6 +1169,7 @@  common_function_versions (tree fn1, tree
 	      std::swap (fn1, fn2);
 	      attr1 = attr2;
 	    }
+	  auto_diagnostic_group d;
 	  error_at (DECL_SOURCE_LOCATION (fn2),
 		    "missing %<target%> attribute for multi-versioned %qD",
 		    fn2);