https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80195
Bug ID: 80195 Summary: Message build from untranslated string concatenation in fortran/resolve.c:14529 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 fortran/resolve.c at line 14529: if (sym->ts.type == BT_DERIVED && sym->ns->proc_name && sym->ns->proc_name->attr.flavor == FL_MODULE && !sym->ts.u.derived->attr.use_assoc && gfc_check_symbol_access (sym) && !gfc_check_symbol_access (sym->ts.u.derived) && !gfc_notify_std (GFC_STD_F2003, "PUBLIC %s %qs at %L of PRIVATE " "derived type %qs", (sym->attr.flavor == FL_PARAMETER) ? "parameter" : "variable", sym->name, &sym->declared_at, sym->ts.u.derived->name)) return; The first %s is replaced with one of the untranslated strings literal "parameter" or "variable". That message can't be translated because it is constructed by concatenating strings fragments.