https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Comment on attachment 50757 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50757 Patch to fix -Werror=format-security errors I doubt you have properly tested it, because it is clearly buggy. const char *message = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED ? N_("use of C++23 %<size_t%> integer constant") : N_("use of C++23 %<make_signed_t<size_t>%> integer constant"); cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS, virtual_location, 0, message); Changing this to "%s", message obviously breaks it, it will not print use of C++23 'size_t' integer constant (or with UTF-8 quotes etc. and with colors etc.), but use of C++23 %<size_t%> integer constant