/* Some code common to C and ObjC front ends.
- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007,
+ 2009, 2010 Free Software Foundation, Inc.
This file is part of GCC.
#include "config.h"
#include "system.h"
#include "coretypes.h"
-#include "tm.h"
#include "tree.h"
-#include "rtl.h"
-#include "insn-config.h"
-#include "integrate.h"
#include "c-tree.h"
+#include "intl.h"
#include "c-pretty-print.h"
-#include "function.h"
#include "flags.h"
-#include "toplev.h"
#include "diagnostic.h"
-#include "tree-inline.h"
-#include "varray.h"
-#include "ggc.h"
+#include "tree-pretty-print.h"
#include "langhooks.h"
-#include "tree-mudflap.h"
-#include "target.h"
#include "c-objc-common.h"
static bool c_tree_printer (pretty_printer *, text_info *, const char *,
c_tree_printer (pretty_printer *pp, text_info *text, const char *spec,
int precision, bool wide, bool set_locus, bool hash)
{
- tree t = va_arg (*text->args_ptr, tree);
+ tree t;
tree name;
- const char *n = "({anonymous})";
c_pretty_printer *cpp = (c_pretty_printer *) pp;
pp->padding = pp_none;
if (precision != 0 || wide || hash)
return false;
+ if (*spec == 'K')
+ {
+ percent_K_format (text);
+ return true;
+ }
+
+ t = va_arg (*text->args_ptr, tree);
+
if (set_locus && text->locus)
*text->locus = DECL_SOURCE_LOCATION (t);
case 'F':
if (DECL_NAME (t))
- n = lang_hooks.decl_printable_name (t, 2);
+ {
+ pp_identifier (cpp, lang_hooks.decl_printable_name (t, 2));
+ return true;
+ }
break;
case 'T':
if (name && TREE_CODE (name) == TYPE_DECL)
{
if (DECL_NAME (name))
- pp_string (cpp, lang_hooks.decl_printable_name (name, 2));
+ pp_identifier (cpp, lang_hooks.decl_printable_name (name, 2));
else
pp_type_id (cpp, t);
return true;
case 'E':
if (TREE_CODE (t) == IDENTIFIER_NODE)
- n = IDENTIFIER_POINTER (t);
+ pp_identifier (cpp, IDENTIFIER_POINTER (t));
else
- {
- pp_expression (cpp, t);
- return true;
- }
- break;
+ pp_expression (cpp, t);
+ return true;
default:
return false;
}
- pp_string (cpp, n);
+ pp_string (cpp, _("({anonymous})"));
return true;
}