https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90163

            Bug ID: 90163
           Summary: untranslated placeholder in
                    warn_once_call_ms2sysv_xlogues
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: translation
          Assignee: unassigned at gcc dot gnu.org
          Reporter: roland.illig at gmx dot de
  Target Milestone: ---

From i386.c:

static void warn_once_call_ms2sysv_xlogues (const char *feature)
{
  static bool warned_once = false;
  if (!warned_once)
    {
      warning (0, "%<-mcall-ms2sysv-xlogues%> is not compatible with %s",
               feature);
      warned_once = true;
    }
}

warn_once_call_ms2sysv_xlogues ("__builtin_eh_return");
warn_once_call_ms2sysv_xlogues ("static call chains");
warn_once_call_ms2sysv_xlogues ("-fsplit-stack");

The placeholder "feature" can be practically anything. The name of an
intrinsic, a fragment of an English sentence or a command line option.

The fragment of the English sentence doesn't make sense when it is translated.
The %s placeholder must be a %qs, and then the diagnostic becomes:

%<-mcall-ms2sysv-xlogues%> is not compatible with %<static call chains%>

This breaks the English sentence and is impossible to translate into other
languages.

Reply via email to