+2013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * c-pretty-print.h (c_pretty_printer::translate_string): Declare.
+ * c-pretty-print.c (M_): Remove.
+ (c_pretty_printer::translate_string): Define.
+ (pp_c_type_specifier): Use it.
+ (pp_c_primary_expression): Likewise.
+ (pp_c_expression): Likewise.
+
2013-08-24 Gabriel Dos Reis <gdr@integrable-solutions.net>
* c-pretty-print.h (c_pretty_printer::id_expression): Now a
#include "tree-iterator.h"
#include "diagnostic.h"
-/* Translate if being used for diagnostics, but not for dump files or
- __PRETTY_FUNCTION. */
-#define M_(msgid) (pp_translate_identifiers (pp) ? _(msgid) : (msgid))
-
/* The pretty-printer code is primarily designed to closely follow
(GNU) C and C++ grammars. That is to be contrasted with spaghetti
codes we used to have in the past. Following a structured
switch (code)
{
case ERROR_MARK:
- pp_c_ws_string (pp, M_("<type-error>"));
+ pp->translate_string ("<type-error>");
break;
case IDENTIFIER_NODE:
switch (code)
{
case INTEGER_TYPE:
- pp_string (pp, (TYPE_UNSIGNED (t)
- ? M_("<unnamed-unsigned:")
- : M_("<unnamed-signed:")));
+ pp->translate_string (TYPE_UNSIGNED (t)
+ ? "<unnamed-unsigned:"
+ : "<unnamed-signed:");
break;
case REAL_TYPE:
- pp_string (pp, M_("<unnamed-float:"));
+ pp->translate_string ("<unnamed-float:");
break;
case FIXED_POINT_TYPE:
- pp_string (pp, M_("<unnamed-fixed:"));
+ pp->translate_string ("<unnamed-fixed:");
break;
default:
gcc_unreachable ();
if (DECL_NAME (t))
pp_id_expression (pp, t);
else
- pp_c_ws_string (pp, M_("<typedef-error>"));
+ pp->translate_string ("<typedef-error>");
break;
case UNION_TYPE:
else if (code == ENUMERAL_TYPE)
pp_c_ws_string (pp, "enum");
else
- pp_c_ws_string (pp, M_("<tag-error>"));
+ pp->translate_string ("<tag-error>");
if (TYPE_NAME (t))
pp_id_expression (pp, TYPE_NAME (t));
else
- pp_c_ws_string (pp, M_("<anonymous>"));
+ pp->translate_string ("<anonymous>");
break;
default:
pp->padding = pp_before;
}
+void
+c_pretty_printer::translate_string (const char *gmsgid)
+{
+ if (pp_translate_identifiers (this))
+ pp_c_ws_string (this, _(gmsgid));
+ else
+ pp_c_ws_string (this, gmsgid);
+}
+
/* Pretty-print an IDENTIFIER_NODE, which may contain UTF-8 sequences
that need converting to the locale encoding, preceded by whitespace
is necessary. */
break;
case ERROR_MARK:
- pp_c_ws_string (pp, M_("<erroneous-expression>"));
+ pp->translate_string ("<erroneous-expression>");
break;
case RESULT_DECL:
- pp_c_ws_string (pp, M_("<return-value>"));
+ pp->translate_string ("<return-value>");
break;
case INTEGER_CST:
&& !DECL_ARTIFICIAL (SSA_NAME_VAR (e)))
pp_c_expression (pp, SSA_NAME_VAR (e));
else
- pp_c_ws_string (pp, M_("<unknown>"));
+ pp->translate_string ("<unknown>");
break;
case POSTINCREMENT_EXPR:
#include "cxx-pretty-print.h"
#include "tree-pretty-print.h"
-/* Translate if being used for diagnostics, but not for dump files or
- __PRETTY_FUNCTION. */
-#define M_(msgid) (pp_translate_identifiers (pp) ? _(msgid) : (msgid))
-
static void pp_cxx_unqualified_id (cxx_pretty_printer *, tree);
static void pp_cxx_nested_name_specifier (cxx_pretty_printer *, tree);
static void pp_cxx_qualified_id (cxx_pretty_printer *, tree);
switch (code)
{
case RESULT_DECL:
- pp_cxx_ws_string (pp, M_("<return-value>"));
+ pp->translate_string ("<return-value>");
break;
case OVERLOAD:
case IDENTIFIER_NODE:
if (t == NULL)
- pp_cxx_ws_string (pp, M_("<unnamed>"));
+ pp->translate_string ("<unnamed>");
else if (IDENTIFIER_TYPENAME_P (t))
pp_cxx_conversion_function_id (pp, t);
else
parm = TEMPLATE_TYPE_PARM_INDEX (parm);
pp_cxx_begin_template_argument_list (pp);
- pp_cxx_ws_string (pp, M_("template-parameter-"));
+ pp->translate_string ("template-parameter-");
pp_wide_integer (pp, TEMPLATE_PARM_LEVEL (parm));
pp_minus (pp);
pp_wide_integer (pp, TEMPLATE_PARM_IDX (parm) + 1);