This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]