http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47081
Summary: Macro usage too clever for localization Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: goe...@uddeborg.se In gcc/gentype-state.c there is a macro like this: #define fatal_reading_state_printf(Tok,Fmt,...) do { \ ... fatal ("%s:%d:%d: Invalid state file; " Fmt, \ Normally, the first argument to fatal() is extracted for localization. But that extraction apparently fails here. Each usage of the macro will create a unique format string to fatal(). But the extractor for localization only extracts the invariant part that is in the macro, "%s:%d:%d: Invalid state file; ". That will never be the string looked up for translation at run time. And the strings actually looked up are not available in the pot file. Seen in the po file distributed for 4.6-b20101218.