https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104134
--- Comment #10 from Steve Kargl <sgk at troutmask dot apl.washington.edu> --- On Thu, Jan 20, 2022 at 12:25:35AM +0000, msebor at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104134 > > --- Comment #9 from Martin Sebor <msebor at gcc dot gnu.org> --- > The code uses the M_ macro: > > pp_printf (pp, M_("<unnamed %s>"), variety); > > on my machine it expands into: > > pp_printf (pp, ((cxx_pp)->translate_identifiers ? gettext ("<unnamed %s>") : > ("<unnamed %s>")), variety); > > and GCC doesn't warn most likely because the front end doesn't see through the > complex expressio. If I remove the M_ it does warn. So in the FreeBSD build > the M_() macro probably expands to its argument (the string) which GCC then > warns on. > Yes, that seems to be what is happening. I posted the error.ii file. I don't see that gettext in the relevant line of code. Note, I justed started a bootstrap with FreeBSD system compiler clang/clang++. I'll report back later if it dies or succeeds.