[Bug translation/80003] New: i386.c: %s placeholder is no semantic grammar unit
roland.illig at gmx dot de
gcc-bugzilla@gcc.gnu.org
Sat Mar 11 10:58:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80003
Bug ID: 80003
Summary: i386.c: %s placeholder is no semantic grammar unit
Product: gcc
Version: 7.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 config/i386/386.c:
error ("interrupt service routine should have unsigned %s"
"int as the second argument",
TARGET_64BIT
? (TARGET_X32 ? "long long " : "long ")
: "");
The placeholder %s is attached to the "int" following it without a space. This
looks suspicious, and indeed the sentence is hard to understand for
translators. It should rather look like this:
error ("interrupt service routine should have %qs "
"as the second argument",
TARGET_64BIT && TARGET_X32 ? "unsigned long long int"
: TARGET_64_BIT ? "unsigned long int"
: "unsigned int");
In this form the translator doesn't have to care about the contents of the %qs
placeholder, since it won't affect the enclosing sentence. Also, the code now
clearly and unambiguously names the exact types (as a semantic unit) instead of
a list of type keywords.
More information about the Gcc-bugs
mailing list