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.

Reply via email to