https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116724
--- Comment #8 from Joseph S. Myers <jsm28 at gcc dot gnu.org> --- Note that there are various places where translation happens without the diagnostic machinery ever seeing an untranslated message. A representative example is cp/typeck.cc:cp_build_unary_op, where messages are translated with _() then passed to error_at (location, "%s", errstring);. Note that using error_at (location, errstring) would cause issues with -Wformat-security warnings; I've previously suggested adding error_at_no_args (allowing no-arguments formats such as %< and %> but not others) to help with such issues.