This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Some more translation related tweaks
On Mon, Feb 27, 2017 at 12:47:09PM +0000, Joseph Myers wrote:
> On Mon, 27 Feb 2017, Jakub Jelinek wrote:
>
> > On Mon, Feb 27, 2017 at 11:04:36AM +0100, Volker Reichelt wrote:
> > > > This is not -Wformat-security friendly, perhaps better
> > > > pedwarn (EXPR_LOC_OR_LOC (outer_nelts, input_location), OPT_Wvla,
> > > > typedef_variant_p (orig_type)
> > > > ? "non-constant array new length must be specified "
> > > > "directly, not by typedef"
> > > > : "non-constant array new length must be specified "
> > > > "without parentheses around the type-id");
> > > > ?
> > >
> > > Not quite. Like this the second string doesn't end up in the gcc.pot
> > > file for translation. I had to wrap the second string in G_(...) to make
> > > it work. (I'll have a look for other instances of this pattern and
> > > prepare a separate patch.)
> >
> > Looks like a xgettext bug or missing feature :(. Joseph, shall we just
> > change all those to be G_() around the second string (well, some could be
>
> Yes, it's generally the case that G_() is used whenever there's a
> conditional expression for the msgid argument to a diagnostic function.
So, is this ok for trunk? Shall I regenerate gcc.pot or will you?
2017-02-27 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.c (ix86_option_override_internal): Use
cond ? G_("...") : G_("...") instead of just cond ? "..." : "...".
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
* coverage.c (read_counts_file): Likewise.
* omp-offload.c (oacc_loop_fixed_partitions): Likewise.
* gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
of just cond ? "..." : "...".
c/
* c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...")
instead of just cond ? "..." : "...".
(c_parser_oacc_enter_exit_data): Use %s and ternary operator only
for "enter"/"exit" keyword.
(c_finish_oacc_routine): Don't use %s to supply portions of the
message.
cp/
* decl.c (find_decomp_class_base): Use cond ? G_("...") : G_("...")
instead of just cond ? "..." : "...".
(grokdeclarator): Likewise.
(build_enumerator): Likewise.
* init.c (build_new_1): Likewise.
* call.c (build_new_method_call_1): Likewise.
* parser.c (cp_parser_oacc_enter_exit_data): Use %s and ternary
operator only for "enter"/"exit" keyword.
(cp_finalize_oacc_routine): Don't use %s to supply portions of the
message.
fortran/
* parse.c (parse_critical_block): Use cond ? G_("...") : G_("...")
instead of just cond ? "..." : "...".
* scanner.c (gfc_next_char_literal): Likewise.
* match.c (match_exit_cycle): Likewise.
--- gcc/config/i386/i386.c.jj 2017-02-21 15:38:48.000000000 +0100
+++ gcc/config/i386/i386.c 2017-02-27 15:47:08.665621000 +0100
@@ -5265,11 +5265,11 @@ ix86_option_override_internal (bool main
else if (!strcmp (opts->x_ix86_tune_string, "x86-64"))
warning (OPT_Wdeprecated,
main_args_p
- ? "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> "
- "or %<-mtune=generic%> instead as appropriate"
- : "%<target(\"tune=x86-64\")%> is deprecated; use "
- "%<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> "
- "instead as appropriate");
+ ? G_("%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> "
+ "or %<-mtune=generic%> instead as appropriate")
+ : G_("%<target(\"tune=x86-64\")%> is deprecated; use "
+ "%<target(\"tune=k8\")%> or %<target(\"tune=generic\")%>"
+ " instead as appropriate"));
}
else
{
@@ -5418,17 +5418,19 @@ ix86_option_override_internal (bool main
if (!strcmp (opts->x_ix86_arch_string, "generic"))
{
error (main_args_p
- ? "%<generic%> CPU can be used only for %<-mtune=%> switch"
- : "%<generic%> CPU can be used only for "
- "%<target(\"tune=\")%> attribute");
+ ? G_("%<generic%> CPU can be used only for %<-mtune=%> "
+ "switch")
+ : G_("%<generic%> CPU can be used only for "
+ "%<target(\"tune=\")%> attribute"));
return false;
}
else if (!strcmp (opts->x_ix86_arch_string, "intel"))
{
error (main_args_p
- ? "%<intel%> CPU can be used only for %<-mtune=%> switch"
- : "%<intel%> CPU can be used only for "
- "%<target(\"tune=\")%> attribute");
+ ? G_("%<intel%> CPU can be used only for %<-mtune=%> "
+ "switch")
+ : G_("%<intel%> CPU can be used only for "
+ "%<target(\"tune=\")%> attribute"));
return false;
}
@@ -5656,8 +5658,8 @@ ix86_option_override_internal (bool main
if (i == pta_size)
{
error (main_args_p
- ? "bad value (%qs) for %<-march=%> switch"
- : "bad value (%qs) for %<target(\"arch=\")%> attribute",
+ ? G_("bad value (%qs) for %<-march=%> switch")
+ : G_("bad value (%qs) for %<target(\"arch=\")%> attribute"),
opts->x_ix86_arch_string);
auto_vec <const char *> candidates;
@@ -5674,16 +5676,16 @@ ix86_option_override_internal (bool main
if (hint)
inform (input_location,
main_args_p
- ? "valid arguments to %<-march=%> switch are: "
- "%s; did you mean %qs?"
- : "valid arguments to %<target(\"arch=\")%> attribute are: "
- "%s; did you mean %qs?", s, hint);
+ ? G_("valid arguments to %<-march=%> switch are: "
+ "%s; did you mean %qs?")
+ : G_("valid arguments to %<target(\"arch=\")%> attribute are: "
+ "%s; did you mean %qs?"), s, hint);
else
inform (input_location,
main_args_p
- ? "valid arguments to %<-march=%> switch are: %s"
- : "valid arguments to %<target(\"arch=\")%> attribute are: %s",
- s);
+ ? G_("valid arguments to %<-march=%> switch are: %s")
+ : G_("valid arguments to %<target(\"arch=\")%> attribute "
+ "are: %s"), s);
XDELETEVEC (s);
}
@@ -5729,8 +5731,8 @@ ix86_option_override_internal (bool main
if (ix86_tune_specified && i == pta_size)
{
error (main_args_p
- ? "bad value (%qs) for %<-mtune=%> switch"
- : "bad value (%qs) for %<target(\"tune=\")%> attribute",
+ ? G_("bad value (%qs) for %<-mtune=%> switch")
+ : G_("bad value (%qs) for %<target(\"tune=\")%> attribute"),
opts->x_ix86_tune_string);
auto_vec <const char *> candidates;
@@ -5745,16 +5747,16 @@ ix86_option_override_internal (bool main
if (hint)
inform (input_location,
main_args_p
- ? "valid arguments to %<-mtune=%> switch are: "
- "%s; did you mean %qs?"
- : "valid arguments to %<target(\"tune=\")%> attribute are: "
- "%s; did you mean %qs?", s, hint);
+ ? G_("valid arguments to %<-mtune=%> switch are: "
+ "%s; did you mean %qs?")
+ : G_("valid arguments to %<target(\"tune=\")%> attribute are: "
+ "%s; did you mean %qs?"), s, hint);
else
inform (input_location,
main_args_p
- ? "valid arguments to %<-mtune=%> switch are: %s"
- : "valid arguments to %<target(\"tune=\")%> attribute are: %s",
- s);
+ ? G_("valid arguments to %<-mtune=%> switch are: %s")
+ : G_("valid arguments to %<target(\"tune=\")%> attribute "
+ "are: %s"), s);
XDELETEVEC (s);
}
@@ -5856,8 +5858,9 @@ ix86_option_override_internal (bool main
if (TARGET_RTD_P (opts->x_target_flags))
warning (0,
- main_args_p ? "%<-mrtd%> is ignored in 64bit mode"
- : "%<target(\"rtd\")%> is ignored in 64bit mode");
+ main_args_p
+ ? G_("%<-mrtd%> is ignored in 64bit mode")
+ : G_("%<target(\"rtd\")%> is ignored in 64bit mode"));
}
else
{
@@ -5979,8 +5982,8 @@ ix86_option_override_internal (bool main
if (TARGET_SSEREGPARM_P (opts->x_target_flags)
&& ! TARGET_SSE_P (opts->x_ix86_isa_flags))
error (main_args_p
- ? "%<-msseregparm%> used without SSE enabled"
- : "%<target(\"sseregparm\")%> used without SSE enabled");
+ ? G_("%<-msseregparm%> used without SSE enabled")
+ : G_("%<target(\"sseregparm\")%> used without SSE enabled"));
if (opts_set->x_ix86_fpmath)
{
@@ -6047,10 +6050,11 @@ ix86_option_override_internal (bool main
if (opts_set->x_target_flags & MASK_ACCUMULATE_OUTGOING_ARGS)
warning (0,
main_args_p
- ? "stack probing requires %<-maccumulate-outgoing-args%> "
- "for correctness"
- : "stack probing requires "
- "%<target(\"accumulate-outgoing-args\")%> for correctness");
+ ? G_("stack probing requires %<-maccumulate-outgoing-args%> "
+ "for correctness")
+ : G_("stack probing requires "
+ "%<target(\"accumulate-outgoing-args\")%> for "
+ "correctness"));
opts->x_target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
}
@@ -6062,9 +6066,10 @@ ix86_option_override_internal (bool main
if (opts_set->x_target_flags & MASK_ACCUMULATE_OUTGOING_ARGS)
warning (0,
main_args_p
- ? "fixed ebp register requires %<-maccumulate-outgoing-args%>"
- : "fixed ebp register requires "
- "%<target(\"accumulate-outgoing-args\")%>");
+ ? G_("fixed ebp register requires "
+ "%<-maccumulate-outgoing-args%>")
+ : G_("fixed ebp register requires "
+ "%<target(\"accumulate-outgoing-args\")%>"));
opts->x_target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
}
--- gcc/config/nvptx/nvptx.c.jj 2017-02-21 15:36:03.000000000 +0100
+++ gcc/config/nvptx/nvptx.c 2017-02-27 15:48:20.031688240 +0100
@@ -4542,8 +4542,8 @@ nvptx_goacc_validate_dims (tree decl, in
if (fn_level < 0 && dims[GOMP_DIM_VECTOR] >= 0)
warning_at (decl ? DECL_SOURCE_LOCATION (decl) : UNKNOWN_LOCATION, 0,
dims[GOMP_DIM_VECTOR]
- ? "using vector_length (%d), ignoring %d"
- : "using vector_length (%d), ignoring runtime setting",
+ ? G_("using vector_length (%d), ignoring %d")
+ : G_("using vector_length (%d), ignoring runtime setting"),
PTX_VECTOR_LENGTH, dims[GOMP_DIM_VECTOR]);
dims[GOMP_DIM_VECTOR] = PTX_VECTOR_LENGTH;
changed = true;
--- gcc/cp/decl.c.jj 2017-02-27 15:19:13.000000000 +0100
+++ gcc/cp/decl.c 2017-02-27 15:36:41.655834700 +0100
@@ -7224,8 +7224,9 @@ find_decomp_class_base (location_t loc,
error_at (loc, "cannot decompose non-public member %qD of %qT",
field, type);
inform (DECL_SOURCE_LOCATION (field),
- TREE_PRIVATE (field) ? "declared private here"
- : "declared protected here");
+ TREE_PRIVATE (field)
+ ? G_("declared private here")
+ : G_("declared protected here"));
return error_mark_node;
}
else
@@ -11001,8 +11002,8 @@ grokdeclarator (const cp_declarator *dec
{
maybe_warn_cpp0x (CPP0X_REF_QUALIFIER);
error ((flags == DTOR_FLAG)
- ? "destructors may not be ref-qualified"
- : "constructors may not be ref-qualified");
+ ? G_("destructors may not be ref-qualified")
+ : G_("constructors may not be ref-qualified"));
rqual = REF_QUAL_NONE;
}
@@ -14484,9 +14485,10 @@ build_enumerator (tree name, tree value,
}
if (type && cxx_dialect < cxx11
&& itk > itk_unsigned_long)
- pedwarn (input_location, OPT_Wlong_long, pos ? "\
-incremented enumerator value is too large for %<unsigned long%>" : "\
-incremented enumerator value is too large for %<long%>");
+ pedwarn (input_location, OPT_Wlong_long,
+ pos ? G_("\
+incremented enumerator value is too large for %<unsigned long%>") : G_("\
+incremented enumerator value is too large for %<long%>"));
}
if (type == NULL_TREE)
overflowed = true;
--- gcc/cp/parser.c.jj 2017-02-24 21:39:13.000000000 +0100
+++ gcc/cp/parser.c 2017-02-27 15:38:31.480392105 +0100
@@ -36293,9 +36293,8 @@ cp_parser_oacc_enter_exit_data (cp_parse
if (strcmp (p, "data") != 0)
{
- error_at (loc, enter
- ? "expected %<data%> after %<#pragma acc enter%>"
- : "expected %<data%> after %<#pragma acc exit%>");
+ error_at (loc, "expected %<data%> after %<#pragma acc %s%>",
+ enter ? "enter" : "exit");
cp_parser_skip_to_pragma_eol (parser, pragma_tok);
return NULL_TREE;
}
@@ -37573,8 +37572,10 @@ cp_finalize_oacc_routine (cp_parser *par
if (TREE_USED (fndecl) || (!is_defn && DECL_SAVED_TREE (fndecl)))
{
error_at (parser->oacc_routine->loc,
- "%<#pragma acc routine%> must be applied before %s",
- TREE_USED (fndecl) ? "use" : "definition");
+ TREE_USED (fndecl)
+ ? G_("%<#pragma acc routine%> must be applied before use")
+ : G_("%<#pragma acc routine%> must be applied before "
+ "definition"));
parser->oacc_routine = NULL;
return;
}
--- gcc/cp/init.c.jj 2017-02-27 15:19:13.000000000 +0100
+++ gcc/cp/init.c 2017-02-27 18:20:40.162038982 +0100
@@ -2806,8 +2806,8 @@ build_new_1 (vec<tree, va_gc> **placemen
{
pedwarn (EXPR_LOC_OR_LOC (outer_nelts, input_location), OPT_Wvla,
typedef_variant_p (orig_type)
- ? "non-constant array new length must be specified "
- "directly, not by typedef"
+ ? G_("non-constant array new length must be specified "
+ "directly, not by typedef")
: G_("non-constant array new length must be specified "
"without parentheses around the type-id"));
}
--- gcc/cp/call.c.jj 2017-02-25 09:32:11.000000000 +0100
+++ gcc/cp/call.c 2017-02-27 15:35:04.939105117 +0100
@@ -8772,8 +8772,8 @@ build_new_method_call_1 (tree instance,
else if (DECL_CONSTRUCTOR_P (current_function_decl)
|| DECL_DESTRUCTOR_P (current_function_decl))
warning (0, (DECL_CONSTRUCTOR_P (current_function_decl)
- ? "pure virtual %q#D called from constructor"
- : "pure virtual %q#D called from destructor"),
+ ? G_("pure virtual %q#D called from constructor")
+ : G_("pure virtual %q#D called from destructor")),
fn);
}
--- gcc/c/c-parser.c.jj 2017-02-24 21:39:13.000000000 +0100
+++ gcc/c/c-parser.c 2017-02-27 15:33:46.634133688 +0100
@@ -6159,8 +6159,8 @@ c_parser_asm_statement (c_parser *parser
{
if (!c_parser_require (parser, CPP_COLON,
is_goto
- ? "expected %<:%>"
- : "expected %<:%> or %<)%>"))
+ ? G_("expected %<:%>")
+ : G_("expected %<:%> or %<)%>")))
goto error_close_paren;
/* Once past any colon, we're no longer a simple asm. */
@@ -13925,9 +13925,8 @@ c_parser_oacc_enter_exit_data (c_parser
if (strcmp (p, "data") != 0)
{
- error_at (loc, enter
- ? "expected %<data%> after %<#pragma acc enter%>"
- : "expected %<data%> after %<#pragma acc exit%>");
+ error_at (loc, "expected %<data%> after %<#pragma acc %s%>",
+ enter ? "enter" : "exit");
parser->error = true;
c_parser_skip_to_pragma_eol (parser);
return;
@@ -13942,9 +13941,8 @@ c_parser_oacc_enter_exit_data (c_parser
if (omp_find_clause (clauses, OMP_CLAUSE_MAP) == NULL_TREE)
{
- error_at (loc, enter
- ? "%<#pragma acc enter data%> has no data movement clause"
- : "%<#pragma acc exit data%> has no data movement clause");
+ error_at (loc, "%<#pragma acc %s data%> has no data movement clause",
+ enter ? "enter" : "exit");
return;
}
@@ -14270,8 +14268,10 @@ c_finish_oacc_routine (struct oacc_routi
if (TREE_USED (fndecl) || (!is_defn && DECL_SAVED_TREE (fndecl)))
{
error_at (data->loc,
- "%<#pragma acc routine%> must be applied before %s",
- TREE_USED (fndecl) ? "use" : "definition");
+ TREE_USED (fndecl)
+ ? G_("%<#pragma acc routine%> must be applied before use")
+ : G_("%<#pragma acc routine%> must be applied before "
+ "definition"));
data->error_seen = true;
return;
}
--- gcc/gcov.c.jj 2017-01-22 20:27:10.000000000 +0100
+++ gcc/gcov.c 2017-02-27 15:24:49.919183680 +0100
@@ -1669,7 +1669,10 @@ read_count_file (function_t *fns)
gcov_sync (base, length);
if ((error = gcov_is_error ()))
{
- fnotice (stderr, error < 0 ? "%s:overflowed\n" : "%s:corrupted\n",
+ fnotice (stderr,
+ error < 0
+ ? N_("%s:overflowed\n")
+ : N_("%s:corrupted\n"),
da_file_name);
goto cleanup;
}
--- gcc/coverage.c.jj 2017-01-01 12:45:35.000000000 +0100
+++ gcc/coverage.c 2017-02-27 15:22:31.736998766 +0100
@@ -327,7 +327,9 @@ read_counts_file (void)
gcov_sync (offset, length);
if ((is_error = gcov_is_error ()))
{
- error (is_error < 0 ? "%qs has overflowed" : "%qs is corrupted",
+ error (is_error < 0
+ ? G_("%qs has overflowed")
+ : G_("%qs is corrupted"),
da_file_name);
delete counts_hash;
counts_hash = NULL;
--- gcc/fortran/parse.c.jj 2017-02-20 13:43:22.000000000 +0100
+++ gcc/fortran/parse.c 2017-02-27 15:40:58.610459485 +0100
@@ -4340,8 +4340,8 @@ parse_critical_block (void)
for (sd = gfc_state_stack; sd; sd = sd->previous)
if (sd->state == COMP_OMP_STRUCTURED_BLOCK)
gfc_error_now (is_oacc (sd)
- ? "CRITICAL block inside of OpenACC region at %C"
- : "CRITICAL block inside of OpenMP region at %C");
+ ? G_("CRITICAL block inside of OpenACC region at %C")
+ : G_("CRITICAL block inside of OpenMP region at %C"));
s.ext.end_do_label = new_st.label1;
--- gcc/fortran/scanner.c.jj 2017-01-01 12:45:47.000000000 +0100
+++ gcc/fortran/scanner.c 2017-02-27 15:41:56.106706170 +0100
@@ -1406,10 +1406,11 @@ restart:
if (i == 4)
old_loc = gfc_current_locus;
}
- gfc_error (is_openmp ? "Wrong OpenACC continuation at %C: "
- "expected !$ACC, got !$OMP"
- : "Wrong OpenMP continuation at %C: "
- "expected !$OMP, got !$ACC");
+ gfc_error (is_openmp
+ ? G_("Wrong OpenACC continuation at %C: "
+ "expected !$ACC, got !$OMP")
+ : G_("Wrong OpenMP continuation at %C: "
+ "expected !$OMP, got !$ACC"));
}
if (c != '&')
@@ -1502,10 +1503,11 @@ restart:
if (gfc_wide_tolower (c) != (unsigned char) "*$acc"[i])
is_openmp = 1;
}
- gfc_error (is_openmp ? "Wrong OpenACC continuation at %C: "
- "expected !$ACC, got !$OMP"
- : "Wrong OpenMP continuation at %C: "
- "expected !$OMP, got !$ACC");
+ gfc_error (is_openmp
+ ? G_("Wrong OpenACC continuation at %C: "
+ "expected !$ACC, got !$OMP")
+ : G_("Wrong OpenMP continuation at %C: "
+ "expected !$OMP, got !$ACC"));
}
else if (!openmp_flag && !openacc_flag)
for (i = 0; i < 5; i++)
--- gcc/fortran/match.c.jj 2017-02-13 12:20:49.000000000 +0100
+++ gcc/fortran/match.c 2017-02-27 15:40:04.876165309 +0100
@@ -2731,8 +2731,8 @@ match_exit_cycle (gfc_statement st, gfc_
if (o != NULL)
{
gfc_error (is_oacc (p)
- ? "%s statement at %C leaving OpenACC structured block"
- : "%s statement at %C leaving OpenMP structured block",
+ ? G_("%s statement at %C leaving OpenACC structured block")
+ : G_("%s statement at %C leaving OpenMP structured block"),
gfc_ascii_statement (st));
return MATCH_ERROR;
}
--- gcc/omp-offload.c.jj 2017-02-14 20:40:09.000000000 +0100
+++ gcc/omp-offload.c 2017-02-27 15:27:11.694321400 +0100
@@ -1117,9 +1117,9 @@ oacc_loop_fixed_partitions (oacc_loop *l
if (noisy)
error_at (loop->loc,
seq_par
- ? "%<seq%> overrides other OpenACC loop specifiers"
- : "%<auto%> conflicts with other OpenACC loop "
- "specifiers");
+ ? G_("%<seq%> overrides other OpenACC loop specifiers")
+ : G_("%<auto%> conflicts with other OpenACC loop "
+ "specifiers"));
maybe_auto = false;
loop->flags &= ~OLF_AUTO;
if (seq_par)
Jakub