Commit 380c6697 authored by jakub's avatar jakub

gcc/po/

	* exgettext: Handle gmsgid and cmsgid arguments specially,
	as gcc-internal-format and c-format.  Because of xgettext
	bug, invoke xgettext once with --language=c, once with
	--language=GCC-source and then merge together.  Fail if
	xgettext is not 0.14.5 or later.
gcc/
	* intl.h (G_): New macro.
	* rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
	instead of msgid for argument name.
	* tree-ssa.c (warn_uninit): Likewise.
	* c-parser.c (c_parser_error): Likewise.
	* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
	* config/darwin-c.c (BAD): Likewise.
	* config/c4x/c4x-c.c (BAD): Likewise.
	* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
	* c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
	* c-common.c (c_parse_error): Likewise.
	* diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
	warning0, pedwarn, error, sorry, fatal_error, internal_error):
	Likewise.
	(fnotice): Use cmsgid instead of msgid for argument name.
	* gcov.c (fnotice): Likewise.
	* protoize.c (notice): Likewise.
	* final.c (output_operand_lossage): Likewise.
	* gcc.c (fatal, notice): Likewise.
	(error): Use gmsgid instead of msgid for argument name.
	* collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
	of msgid for argument name.
	(error): Use gmsgid instead of msgid for argument name.
	* c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
	instead of N_().
	* c-typeck.c (readonly_error, convert_for_assignment): Likewise.
	* tree-inline.c (inline_forbidden_p_1): Likewise.
	* ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
	conventions for marking translations.
	* doc/install.texi: Mention gettext 0.14.5 or later requirement.
gcc/cp/
	* error.c (locate_error): Use gmsgid instead of msgid for argument
	name.
	(cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
gcc/java/
	* jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
	msgid for argument name.
	* gjavah.c (error): Likewise.
	* java-tree.h (parse_error_context): Likewise.
	* parse.y (parse_error_context, parse_warning_context,
	issue_warning_error_from_context): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100676 138bc75d-0d04-0410-961f-82ee72b054a4
parent b74b8216
......@@ -25,15 +25,22 @@ responsibility to translate the message before the user sees it.
By convention, any function parameter in the GCC sources whose name
ends in `msgid' is expected to be a message requiring translation.
For example, the `error' function's first parameter is named `msgid'.
If the parameter name ends with `gmsgid', it is assumed to be a GCC
diagnostics format string requiring translation, if it ends with
`cmsgid', it is assumed to be a format string for `printf' family
of functions, requiring a translation.
For example, the `error' function's first parameter is named `gmsgid'.
GCC's exgettext script uses this convention to determine which
function parameter strings need to be translated. The exgettext
script also assumes that any occurrence of `%eMSGID}' on a source
line, where MSGID does not contain `%' or `}', corresponds to a
message MSGID that requires translation; this is needed to identify
diagnostics in GCC spec strings.
The `G_(GMSGID)' macro defined in intl.h can be used to mark GCC diagnostics
format strings as requiring translation, but other than that it is a
no-op at runtime.
If you modify source files, you'll need at least version 0.10.37 of the
If you modify source files, you'll need at least version 0.14.15 of the
GNU gettext package to propagate the modifications to the translation
tables.
......
2005-06-06 Jakub Jelinek <jakub@redhat.com>
* intl.h (G_): New macro.
* rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
instead of msgid for argument name.
* tree-ssa.c (warn_uninit): Likewise.
* c-parser.c (c_parser_error): Likewise.
* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
* config/darwin-c.c (BAD): Likewise.
* config/c4x/c4x-c.c (BAD): Likewise.
* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
* c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
* c-common.c (c_parse_error): Likewise.
* diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
warning0, pedwarn, error, sorry, fatal_error, internal_error):
Likewise.
(fnotice): Use cmsgid instead of msgid for argument name.
* gcov.c (fnotice): Likewise.
* protoize.c (notice): Likewise.
* final.c (output_operand_lossage): Likewise.
* gcc.c (fatal, notice): Likewise.
(error): Use gmsgid instead of msgid for argument name.
* collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
of msgid for argument name.
(error): Use gmsgid instead of msgid for argument name.
* c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
instead of N_().
* c-typeck.c (readonly_error, convert_for_assignment): Likewise.
* tree-inline.c (inline_forbidden_p_1): Likewise.
* ABOUT-GCC-NLS: Require gettext 0.14.5 or later. Mention the new
conventions for marking translations.
* doc/install.texi: Mention gettext 0.14.5 or later requirement.
* tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
build2.
......
......@@ -5520,51 +5520,51 @@ catenate_strings (const char *lhs, const char *rhs_start, int rhs_size)
return result;
}
/* Issue the error given by MSGID, indicating that it occurred before
/* Issue the error given by GMSGID, indicating that it occurred before
TOKEN, which had the associated VALUE. */
void
c_parse_error (const char *msgid, enum cpp_ttype token, tree value)
c_parse_error (const char *gmsgid, enum cpp_ttype token, tree value)
{
#define catenate_messages(M1, M2) catenate_strings ((M1), (M2), sizeof (M2))
char *message = NULL;
if (token == CPP_EOF)
message = catenate_messages (msgid, " at end of input");
message = catenate_messages (gmsgid, " at end of input");
else if (token == CPP_CHAR || token == CPP_WCHAR)
{
unsigned int val = TREE_INT_CST_LOW (value);
const char *const ell = (token == CPP_CHAR) ? "" : "L";
if (val <= UCHAR_MAX && ISGRAPH (val))
message = catenate_messages (msgid, " before %s'%c'");
message = catenate_messages (gmsgid, " before %s'%c'");
else
message = catenate_messages (msgid, " before %s'\\x%x'");
message = catenate_messages (gmsgid, " before %s'\\x%x'");
error (message, ell, val);
free (message);
message = NULL;
}
else if (token == CPP_STRING || token == CPP_WSTRING)
message = catenate_messages (msgid, " before string constant");
message = catenate_messages (gmsgid, " before string constant");
else if (token == CPP_NUMBER)
message = catenate_messages (msgid, " before numeric constant");
message = catenate_messages (gmsgid, " before numeric constant");
else if (token == CPP_NAME)
{
message = catenate_messages (msgid, " before %qE");
message = catenate_messages (gmsgid, " before %qE");
error (message, value);
free (message);
message = NULL;
}
else if (token < N_TTYPES)
{
message = catenate_messages (msgid, " before %qs token");
message = catenate_messages (gmsgid, " before %qs token");
error (message, cpp_type2name (token));
free (message);
message = NULL;
}
else
error (msgid);
error (gmsgid);
if (message)
{
......
......@@ -1131,11 +1131,11 @@ locate_old_decl (tree decl, void (*diag)(const char *, ...))
if (TREE_CODE (decl) == FUNCTION_DECL && DECL_BUILT_IN (decl))
;
else if (DECL_INITIAL (decl))
diag (N_("%Jprevious definition of %qD was here"), decl, decl);
diag (G_("%Jprevious definition of %qD was here"), decl, decl);
else if (C_DECL_IMPLICIT (decl))
diag (N_("%Jprevious implicit declaration of %qD was here"), decl, decl);
diag (G_("%Jprevious implicit declaration of %qD was here"), decl, decl);
else
diag (N_("%Jprevious declaration of %qD was here"), decl, decl);
diag (G_("%Jprevious declaration of %qD was here"), decl, decl);
}
/* Subroutine of duplicate_decls. Compare NEWDECL to OLDDECL.
......@@ -2292,7 +2292,7 @@ implicit_decl_warning (tree id, tree olddecl)
default: gcc_unreachable ();
}
diag (N_("implicit declaration of function %qE"), id);
diag (G_("implicit declaration of function %qE"), id);
if (olddecl)
locate_old_decl (olddecl, diag);
}
......
......@@ -32,13 +32,13 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* Issue an ISO C99 pedantic warning MSGID. */
void
pedwarn_c99 (const char *msgid, ...)
pedwarn_c99 (const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap, input_location,
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location,
flag_isoc99 ? pedantic_error_kind () : DK_WARNING);
report_diagnostic (&diagnostic);
va_end (ap);
......@@ -50,13 +50,13 @@ pedwarn_c99 (const char *msgid, ...)
(There is no flag_c90.) */
void
pedwarn_c90 (const char *msgid, ...)
pedwarn_c90 (const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap, input_location,
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location,
flag_isoc99 ? DK_WARNING : pedantic_error_kind ());
report_diagnostic (&diagnostic);
va_end (ap);
......
......@@ -635,18 +635,18 @@ c_parser_new (void)
used. */
static void
c_parser_error (c_parser *parser, const char *msgid)
c_parser_error (c_parser *parser, const char *gmsgid)
{
c_token *token = c_parser_peek_token (parser);
if (parser->error)
return;
parser->error = true;
if (!msgid)
if (!gmsgid)
return;
/* This diagnostic makes more sense if it is tagged to the line of
the token we just peeked at. */
c_parser_set_source_position_from_token (token);
c_parse_error (msgid,
c_parse_error (gmsgid,
/* Because c_parse_error does not understand
CPP_KEYWORD, keywords are treated like
identifiers. */
......
......@@ -37,8 +37,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "vec.h"
#include "target.h"
#define GCC_BAD(msgid) do { warning (0, msgid); return; } while (0)
#define GCC_BAD2(msgid, arg) do { warning (0, msgid, arg); return; } while (0)
#define GCC_BAD(gmsgid) do { warning (0, gmsgid); return; } while (0)
#define GCC_BAD2(gmsgid, arg) \
do { warning (0, gmsgid, arg); return; } while (0)
typedef struct align_stack GTY(())
{
......
......@@ -2845,20 +2845,20 @@ readonly_error (tree arg, enum lvalue_use use)
if (TYPE_READONLY (TREE_TYPE (TREE_OPERAND (arg, 0))))
readonly_error (TREE_OPERAND (arg, 0), use);
else
error (READONLY_MSG (N_("assignment of read-only member %qD"),
N_("increment of read-only member %qD"),
N_("decrement of read-only member %qD")),
error (READONLY_MSG (G_("assignment of read-only member %qD"),
G_("increment of read-only member %qD"),
G_("decrement of read-only member %qD")),
TREE_OPERAND (arg, 1));
}
else if (TREE_CODE (arg) == VAR_DECL)
error (READONLY_MSG (N_("assignment of read-only variable %qD"),
N_("increment of read-only variable %qD"),
N_("decrement of read-only variable %qD")),
error (READONLY_MSG (G_("assignment of read-only variable %qD"),
G_("increment of read-only variable %qD"),
G_("decrement of read-only variable %qD")),
arg);
else
error (READONLY_MSG (N_("assignment of read-only location"),
N_("increment of read-only location"),
N_("decrement of read-only location")));
error (READONLY_MSG (G_("assignment of read-only location"),
G_("increment of read-only location"),
G_("decrement of read-only location")));
}
......@@ -3728,26 +3728,26 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
function where an ordinary one is wanted, but not
vice-versa. */
if (TYPE_QUALS (ttl) & ~TYPE_QUALS (ttr))
WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE "
WARN_FOR_ASSIGNMENT (G_("passing argument %d of %qE "
"makes qualified function "
"pointer from unqualified"),
N_("assignment makes qualified "
G_("assignment makes qualified "
"function pointer from "
"unqualified"),
N_("initialization makes qualified "
G_("initialization makes qualified "
"function pointer from "
"unqualified"),
N_("return makes qualified function "
G_("return makes qualified function "
"pointer from unqualified"));
}
else if (TYPE_QUALS (ttr) & ~TYPE_QUALS (ttl))
WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE discards "
WARN_FOR_ASSIGNMENT (G_("passing argument %d of %qE discards "
"qualifiers from pointer target type"),
N_("assignment discards qualifiers "
G_("assignment discards qualifiers "
"from pointer target type"),
N_("initialization discards qualifiers "
G_("initialization discards qualifiers "
"from pointer target type"),
N_("return discards qualifiers from "
G_("return discards qualifiers from "
"pointer target type"));
}
......@@ -3796,14 +3796,14 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
which are not ANSI null ptr constants. */
&& (!integer_zerop (rhs) || TREE_CODE (rhs) == NOP_EXPR)
&& TREE_CODE (ttl) == FUNCTION_TYPE)))
WARN_FOR_ASSIGNMENT (N_("ISO C forbids passing argument %d of "
WARN_FOR_ASSIGNMENT (G_("ISO C forbids passing argument %d of "
"%qE between function pointer "
"and %<void *%>"),
N_("ISO C forbids assignment between "
G_("ISO C forbids assignment between "
"function pointer and %<void *%>"),
N_("ISO C forbids initialization between "
G_("ISO C forbids initialization between "
"function pointer and %<void *%>"),
N_("ISO C forbids return between function "
G_("ISO C forbids return between function "
"pointer and %<void *%>"));
/* Const and volatile mean something different for function types,
so the usual warnings are not appropriate. */
......@@ -3816,13 +3816,13 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
qualifier are acceptable if the 'volatile' has been added
in by the Objective-C EH machinery. */
if (!objc_type_quals_match (ttl, ttr))
WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE discards "
WARN_FOR_ASSIGNMENT (G_("passing argument %d of %qE discards "
"qualifiers from pointer target type"),
N_("assignment discards qualifiers "
G_("assignment discards qualifiers "
"from pointer target type"),
N_("initialization discards qualifiers "
G_("initialization discards qualifiers "
"from pointer target type"),
N_("return discards qualifiers from "
G_("return discards qualifiers from "
"pointer target type"));
}
/* If this is not a case of ignoring a mismatch in signedness,
......@@ -3832,13 +3832,13 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
;
/* If there is a mismatch, do warn. */
else if (warn_pointer_sign)
WARN_FOR_ASSIGNMENT (N_("pointer targets in passing argument "
WARN_FOR_ASSIGNMENT (G_("pointer targets in passing argument "
"%d of %qE differ in signedness"),
N_("pointer targets in assignment "
G_("pointer targets in assignment "
"differ in signedness"),
N_("pointer targets in initialization "
G_("pointer targets in initialization "
"differ in signedness"),
N_("pointer targets in return differ "
G_("pointer targets in return differ "
"in signedness"));
}
else if (TREE_CODE (ttl) == FUNCTION_TYPE
......@@ -3849,26 +3849,26 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
it is okay to use a const or volatile function
where an ordinary one is wanted, but not vice-versa. */
if (TYPE_QUALS (ttl) & ~TYPE_QUALS (ttr))
WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE makes "
WARN_FOR_ASSIGNMENT (G_("passing argument %d of %qE makes "
"qualified function pointer "
"from unqualified"),
N_("assignment makes qualified function "
G_("assignment makes qualified function "
"pointer from unqualified"),
N_("initialization makes qualified "
G_("initialization makes qualified "
"function pointer from unqualified"),
N_("return makes qualified function "
G_("return makes qualified function "
"pointer from unqualified"));
}
}
else
/* Avoid warning about the volatile ObjC EH puts on decls. */
if (!objc_ok)
WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE from "
WARN_FOR_ASSIGNMENT (G_("passing argument %d of %qE from "
"incompatible pointer type"),
N_("assignment from incompatible pointer type"),
N_("initialization from incompatible "
G_("assignment from incompatible pointer type"),
G_("initialization from incompatible "
"pointer type"),
N_("return from incompatible pointer type"));
G_("return from incompatible pointer type"));
return convert (type, rhs);
}
......@@ -3890,26 +3890,26 @@ convert_for_assignment (tree type, tree rhs, enum impl_conv errtype,
&& TREE_CODE (TREE_TYPE (rhs)) == INTEGER_TYPE
&& TREE_CODE (TREE_OPERAND (rhs, 0)) == INTEGER_CST
&& integer_zerop (TREE_OPERAND (rhs, 0))))
WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE makes "
WARN_FOR_ASSIGNMENT (G_("passing argument %d of %qE makes "
"pointer from integer without a cast"),
N_("assignment makes pointer from integer "
G_("assignment makes pointer from integer "
"without a cast"),
N_("initialization makes pointer from "
G_("initialization makes pointer from "
"integer without a cast"),
N_("return makes pointer from integer "
G_("return makes pointer from integer "
"without a cast"));
return convert (type, rhs);
}
else if (codel == INTEGER_TYPE && coder == POINTER_TYPE)
{
WARN_FOR_ASSIGNMENT (N_("passing argument %d of %qE makes integer "
WARN_FOR_ASSIGNMENT (G_("passing argument %d of %qE makes integer "
"from pointer without a cast"),
N_("assignment makes integer from pointer "
G_("assignment makes integer from pointer "
"without a cast"),
N_("initialization makes integer from pointer "
G_("initialization makes integer from pointer "
"without a cast"),
N_("return makes integer from pointer "
G_("return makes integer from pointer "
"without a cast"));
return convert (type, rhs);
}
......
......@@ -328,26 +328,26 @@ collect_exit (int status)
/* Notify user of a non-error. */
void
notice (const char *msgid, ...)
notice (const char *cmsgid, ...)
{
va_list ap;
va_start (ap, msgid);
vfprintf (stderr, _(msgid), ap);
va_start (ap, cmsgid);
vfprintf (stderr, _(cmsgid), ap);
va_end (ap);
}
/* Die when sys call fails. */
void
fatal_perror (const char * msgid, ...)
fatal_perror (const char * cmsgid, ...)
{
int e = errno;
va_list ap;
va_start (ap, msgid);
va_start (ap, cmsgid);
fprintf (stderr, "collect2: ");
vfprintf (stderr, _(msgid), ap);
vfprintf (stderr, _(cmsgid), ap);
fprintf (stderr, ": %s\n", xstrerror (e));
va_end (ap);
......@@ -357,13 +357,13 @@ fatal_perror (const char * msgid, ...)
/* Just die. */
void
fatal (const char * msgid, ...)
fatal (const char * cmsgid, ...)
{
va_list ap;
va_start (ap, msgid);
va_start (ap, cmsgid);
fprintf (stderr, "collect2: ");
vfprintf (stderr, _(msgid), ap);
vfprintf (stderr, _(cmsgid), ap);
fprintf (stderr, "\n");
va_end (ap);
......@@ -373,13 +373,13 @@ fatal (const char * msgid, ...)
/* Write error message. */
void
error (const char * msgid, ...)
error (const char * gmsgid, ...)
{
va_list ap;
va_start (ap, msgid);
va_start (ap, gmsgid);
fprintf (stderr, "collect2: ");
vfprintf (stderr, _(msgid), ap);
vfprintf (stderr, _(gmsgid), ap);
fprintf (stderr, "\n");
va_end(ap);
}
......
......@@ -57,7 +57,7 @@ static int c4x_parse_pragma (const char *, tree *, tree *);
the STRING_CST node of the string. If SECT is null, then this
pragma doesn't take a section string. Returns 0 for a good pragma,
-1 for a malformed pragma. */
#define BAD(msgid, arg) do { warning (0, msgid, arg); return -1; } while (0)
#define BAD(gmsgid, arg) do { warning (0, gmsgid, arg); return -1; } while (0)
static int
c4x_parse_pragma (name, func, sect)
......
......@@ -35,7 +35,7 @@ Boston, MA 02111-1307, USA. */
/* Pragmas. */
#define BAD(msgid) do { warning (0, msgid); return; } while (0)
#define BAD(gmsgid) do { warning (0, gmsgid); return; } while (0)
static bool using_frameworks = false;
......
......@@ -50,8 +50,8 @@ static tree altivec_resolve_overloaded_builtin (tree, tree);
whether or not new function declarations receive a longcall
attribute by default. */
#define SYNTAX_ERROR(msgid) do { \
warning (0, msgid); \
#define SYNTAX_ERROR(gmsgid) do { \
warning (0, gmsgid); \
warning (0, "ignoring malformed #pragma longcall"); \
return; \
} while (0)
......
2005-06-06 Jakub Jelinek <jakub@redhat.com>
* error.c (locate_error): Use gmsgid instead of msgid for argument
name.
(cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
2005-06-06 Nathan Sidwell <nathan@codesourcery.com>
PR 21903
......
......@@ -2319,13 +2319,13 @@ cp_printer (pretty_printer *pp, text_info *text)
behavior of cp_*_at. */
static tree
locate_error (const char *msgid, va_list ap)
locate_error (const char *gmsgid, va_list ap)
{
tree here = 0, t;
int plus = 0;
const char *f;
for (f = msgid; *f; f++)
for (f = gmsgid; *f; f++)
{
plus = 0;
if (*f == '%')
......@@ -2381,57 +2381,57 @@ locate_error (const char *msgid, va_list ap)
void
cp_error_at (const char *msgid, ...)
cp_error_at (const char *gmsgid, ...)
{
tree here;
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
here = locate_error (msgid, ap);
va_start (ap, gmsgid);
here = locate_error (gmsgid, ap);
va_end (ap);
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap,
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap,
input_location, DK_ERROR);
cp_diagnostic_starter (global_dc, &diagnostic);
diagnostic_set_info (&diagnostic, msgid, &ap,
diagnostic_set_info (&diagnostic, gmsgid, &ap,
location_of (here), DK_ERROR);
report_diagnostic (&diagnostic);
va_end (ap);
}
void
cp_warning_at (const char *msgid, ...)
cp_warning_at (const char *gmsgid, ...)
{
tree here;
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
here = locate_error (msgid, ap);
va_start (ap, gmsgid);
here = locate_error (gmsgid, ap);
va_end (ap);
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap,
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap,
location_of (here), DK_WARNING);
report_diagnostic (&diagnostic);
va_end (ap);
}
void
cp_pedwarn_at (const char *msgid, ...)
cp_pedwarn_at (const char *gmsgid, ...)
{
tree here;
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
here = locate_error (msgid, ap);
va_start (ap, gmsgid);
here = locate_error (gmsgid, ap);
va_end (ap);
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap,
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap,
location_of (here), pedantic_error_kind());
report_diagnostic (&diagnostic);
va_end (ap);
......
......@@ -113,13 +113,13 @@ diagnostic_initialize (diagnostic_context *context)
}
void
diagnostic_set_info (diagnostic_info *diagnostic, const char *msgid,
diagnostic_set_info (diagnostic_info *diagnostic, const char *gmsgid,
va_list *args, location_t location,
diagnostic_t kind)
{
diagnostic->message.err_no = errno;
diagnostic->message.args_ptr = args;
diagnostic->message.format_spec = _(msgid);
diagnostic->message.format_spec = _(gmsgid);
diagnostic->location = location;
diagnostic->kind = kind;
diagnostic->option_index = 0;
......@@ -396,15 +396,15 @@ trim_filename (const char *name)
/* Text to be emitted verbatim to the error message stream; this
produces no prefix and disables line-wrapping. Use rarely. */
void
verbatim (const char *msgid, ...)
verbatim (const char *gmsgid, ...)
{
text_info text;
va_list ap;
va_start (ap, msgid);
va_start (ap, gmsgid);
text.err_no = errno;
text.args_ptr = &ap;
text.format_spec = _(msgid);
text.format_spec = _(gmsgid);
pp_format_verbatim (global_dc->printer, &text);
pp_flush (global_dc->printer);
va_end (ap);
......@@ -413,13 +413,13 @@ verbatim (const char *msgid, ...)
/* An informative note. Use this for additional details on an error
message. */
void
inform (const char *msgid, ...)
inform (const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap, input_location, DK_NOTE);
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_NOTE);
report_diagnostic (&diagnostic);
va_end (ap);
}
......@@ -427,13 +427,13 @@ inform (const char *msgid, ...)
/* A warning. Use this for code which is correct according to the
relevant language specification but is likely to be buggy anyway. */
void
warning (int opt, const char *msgid, ...)
warning (int opt, const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap, input_location, DK_WARNING);
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_WARNING);
diagnostic.option_index = opt;
report_diagnostic (&diagnostic);
......@@ -441,13 +441,13 @@ warning (int opt, const char *msgid, ...)
}
void
warning0 (const char *msgid, ...)
warning0 (const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap, input_location, DK_WARNING);
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_WARNING);
report_diagnostic (&diagnostic);
va_end (ap);
}
......@@ -461,13 +461,13 @@ warning0 (const char *msgid, ...)
of the -pedantic command-line switch. To get a warning enabled
only with that switch, write "if (pedantic) pedwarn (...);" */
void
pedwarn (const char *msgid, ...)
pedwarn (const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap, input_location,
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location,
pedantic_error_kind ());
report_diagnostic (&diagnostic);
va_end (ap);
......@@ -476,13 +476,13 @@ pedwarn (const char *msgid, ...)
/* A hard error: the code is definitely ill-formed, and an object file
will not be produced. */
void
error (const char *msgid, ...)
error (const char *gmsgid, ...)
{
diagnostic_info diagnostic;
va_list ap;
va_start (ap, msgid);
diagnostic_set_info (&diagnostic, msgid, &ap, input_location, DK_ERROR);
va_start (ap, gmsgid);
diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_ERROR);
report_diagnostic (&diagnostic);
va_end (ap);
}
......@@ -491,13 +491,13 @@ error (const char *msgid, ...)