On Thu, Oct 19, 2023 at 11:31:58AM -0400, Jason Merrill wrote: > --- a/gcc/cp/decl.cc > +++ b/gcc/cp/decl.cc > @@ -3607,8 +3607,8 @@ identify_goto (tree decl, location_t loc, const > location_t *locus, > { > bool complained > = emit_diagnostic (diag_kind, loc, 0, > - decl ? N_("jump to label %qD") > - : N_("jump to case label"), decl); > + decl ? G_("jump to label %qD")
N_ for this is wrong because gettext will then not properly verify translators didn't screw things up by using some incompatible format string in the translation. I believe some translations e.g. changed %s to %S. And that seems to be still the case: grep -B3 '[^%]%S' po/*.po po/sr.po-#, fuzzy, gcc-internal-format po/sr.po-#| msgid "Duplicate %s attribute specified at %L" po/sr.po-msgid "Multiple %qs modifiers specified at %C" po/sr.po:msgstr "Удвостручени атрибут %S наведен код %L" -- po/sr.po-#, fuzzy, gcc-internal-format, gfc-internal-format po/sr.po-#| msgid "Duplicate %s attribute specified at %L" po/sr.po-msgid "Duplicate %s attribute specified at %L" po/sr.po:msgstr "Удвостручени атрибут %S наведен код %L" -- po/sr.po-#, fuzzy, gcc-internal-format, gfc-internal-format po/sr.po-#| msgid "Duplicate %s attribute specified at %L" po/sr.po-msgid "Duplicate BIND attribute specified at %L" po/sr.po:msgstr "Удвостручени атрибут %S наведен код %L" -- po/tr.po-#, fuzzy, gcc-internal-format, gfc-internal-format po/tr.po-#| msgid "%s statement must appear in a MODULE" po/tr.po-msgid "%s statement must appear in a MODULE" po/tr.po:msgstr "%S deyimi bir MODULE'de görünmemeli" > + : G_("jump to case label"), decl); While in this case G_ is better just for consistency, N_ would work exactly the same given that there are no format strings. Jakub