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 <ja...@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