https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90149
--- Comment #8 from Martin Sebor <msebor at gcc dot gnu.org> --- (In reply to Richard Biener from comment #6) The trouble is that there is no way to tell whether error ("BIT_FIELD_REF of non-mode-precision operand"); is a user-facing error or an internal error not meant to be translated. The #pragma GCC diagnostic ignored "-Wformat-diag" solution suppresses the warning but won't help translators. The only ways to deal with that that comes to mind are either a new inernal_error_and_continue() function or some special annotation in the format string to make it clear both to -Wformat-diag and to translators that the string isn't meant to be translated (or checked for translation problems). Is there a preference for one or other approach? Or some other solution I'm not thinking of?