https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80012
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- At least in the middle-end or C/C++ FEs such diagnostics is done with error{,_at}/warning{,_at} etc. followed by inform, for warning inform only called if warning* returned true, and wrapped with auto_diagnostic_group d; because it is really just one error (or warning) with extra explanation, not two separate errors.