https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80185
Bug ID: 80185 Summary: Message build from untranslated string concatenation in fortran/resolve.c Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: translation Assignee: unassigned at gcc dot gnu.org Reporter: fmarchal at perso dot be Target Milestone: --- In function resolve_fl_procedure() in fortran/resolve.conf, one can find this code around line 12345 (nice line number BTW): /* Check the result characteristics. */ if (!gfc_check_result_characteristics (sym, iface, errmsg, 200)) { gfc_error ("%s between the MODULE PROCEDURE declaration " "in module %s and the declaration at %L in " "SUBMODULE %s", errmsg, module_name, &sym->declared_at, submodule_name); return false; } The first %s is an untranslated string such as "Type mismatch in function result (%s/%s)" or "ALLOCATABLE attribute mismatch in " among other things. That kind of construct is impossible to translate even if errmsg were translated. This is going to be a real mess to fix because gfc_check_result_characteristics() is used at several places.