https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
--- Comment #3 from Joey Dumont <joey.dumont at gmail dot com> --- I had tested with a simple printf: #include <stdio.h> #ifndef N_ # define N_(msgid) msgid #endif int main(int argc, char* argv[]) { printf(N_("use of C++23 %<size_t%> integer constant")); printf(N_("use of C++23 %<make_signed_t<size_t>%> integer constant")); return 0; } which prints the same thing with or without the "%s" format string. I've been trying to trace where pfile->cb.diagnostic is set to see how the output is actually processed, but I haven't found it yet. Thanks for the feedback!