#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
const
restrict -- C99
__restrict__ -- GNU C
- volatile */
+ address-space-qualifier -- GNU C
+ volatile
+
+ address-space-qualifier:
+ identifier -- GNU C */
void
pp_c_type_qualifier_list (c_pretty_printer *pp, tree t)
pp_c_cv_qualifier (pp, "volatile");
if (qualifiers & TYPE_QUAL_RESTRICT)
pp_c_cv_qualifier (pp, flag_isoc99 ? "restrict" : "__restrict__");
+
+ if (!ADDR_SPACE_GENERIC_P (TYPE_ADDR_SPACE (t)))
+ {
+ const char *as = c_addr_space_name (TYPE_ADDR_SPACE (t));
+ pp_c_identifier (pp, as);
+ }
}
/* pointer:
switch (code)
{
case ERROR_MARK:
- pp_c_ws_string (pp, _("<type-error>"));
+ pp_c_ws_string (pp, M_("<type-error>"));
break;
case IDENTIFIER_NODE:
{
case INTEGER_TYPE:
pp_string (pp, (TYPE_UNSIGNED (t)
- ? _("<unnamed-unsigned:")
- : _("<unnamed-signed:")));
+ ? M_("<unnamed-unsigned:")
+ : M_("<unnamed-signed:")));
break;
case REAL_TYPE:
- pp_string (pp, _("<unnamed-float:"));
+ pp_string (pp, M_("<unnamed-float:"));
break;
case FIXED_POINT_TYPE:
- pp_string (pp, _("<unnamed-fixed:"));
+ pp_string (pp, M_("<unnamed-fixed:"));
break;
default:
gcc_unreachable ();
if (DECL_NAME (t))
pp_id_expression (pp, t);
else
- pp_c_ws_string (pp, _("<typedef-error>"));
+ pp_c_ws_string (pp, M_("<typedef-error>"));
break;
case UNION_TYPE:
else if (code == ENUMERAL_TYPE)
pp_c_ws_string (pp, "enum");
else
- pp_c_ws_string (pp, _("<tag-error>"));
+ pp_c_ws_string (pp, M_("<tag-error>"));
if (TYPE_NAME (t))
pp_id_expression (pp, TYPE_NAME (t));
else
- pp_c_ws_string (pp, _("<anonymous>"));
+ pp_c_ws_string (pp, M_("<anonymous>"));
break;
default:
break;
case ERROR_MARK:
- pp_c_ws_string (pp, _("<erroneous-expression>"));
+ pp_c_ws_string (pp, M_("<erroneous-expression>"));
break;
case RESULT_DECL:
- pp_c_ws_string (pp, _("<return-value>"));
+ pp_c_ws_string (pp, M_("<return-value>"));
break;
case INTEGER_CST:
else
{
static char xname[8];
- sprintf (xname, "<U%4x>", ((unsigned)((unsigned long)(t) & 0xffff)));
+ sprintf (xname, "<U%4x>", ((unsigned)((uintptr_t)(t) & 0xffff)));
name = xname;
}