Commit 4b780675 by Gabriel Dos Reis Committed by Gabriel Dos Reis

pretty-print.c (pp_base_indent): Rename from pp_indent.

	* pretty-print.c (pp_base_indent): Rename from pp_indent.
	* c-pretty-print.h (pp_c_pretty_print_flag)s: New datatype.
	(struct c_pretty_print_info): Add more fields.
	(pp_c_left_paren): Move to c-pretty-print.c.
	(pp_c_right_paren): Likewise.
	(pp_c_left_brace): Likewise.
	(pp_c_right_brace): Likewise.
	(pp_c_left_bracket): Likewise.
	(pp_c_right_bracket): Likewise.
	(pp_c_declarator): Declare.
	(pp_c_direct_declarator): Likewise.
	(pp_c_specifier_qualifier_list): Likewise.
	(pp_c_type_id): Likewise.
	* c-pretty-print.c (pp_c_cv_qualifier): Change prootype. Rework..
	(pp_c_type_qualifier_list): New.
	(pp_c_pointer): Likewise.
	(pp_c_parameter_type_list): Likewise.
	(pp_c_function_definition): Likewise.
	(pp_c_id_expression): Likewise.
	(pp_c_simple_type_specifier): Tidy.
	(pp_c_unary_expression): Likewise.
	(pp_c_expression): Likewise.
	(pp_c_pretty_printer_init): Likewise.
	(pp_c_specifier_qualifier_list): Rework..
	(pp_c_abstract_declarator): Likewise.
	(pp_c_postfix_expression): Likewise.
	(pp_c_primary_expression): Likewise.
	(pp_c_cast_expression): Likewise.
	(pp_c_direct_abstract_declarator): Likewise.
	(pp_c_storage_class_specifier): Likewise.
	(pp_c_function_specifier): Likewise.
	(pp_c_declaration_specifiers): Likewise.
	(pp_c_direct_declarator): Likewise.
	(pp_c_declarator): Likewise.
	(pp_c_declaration): Likewise.
	(pp_c_statement): Likewise.
	(pp_c_integer_constant): Rename from pp_c_integer_literal.
	(pp_c_character_constant): Rename from pp_c_character_literal.
	(pp_c_bool_constant): Rename from pp_c_bool_literal.
	(pp_c_enumeration_constant): Rename from pp_c_enumerator.
	(pp_c_floating_constant): Rename from pp_c_real_literal.
	(pp_c_constant): Rename from pp_c_literal.
	* c-lang.c: Include diagnostic.h and c-pretty-print.h
	(LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define.
	(c_initialize_diagnostics): New.
	* Makefile.in (c-lang.o): Update dependency.

cp/

	* error.c (dump_expr): Tidy.
	* cxx-pretty-print.c (pp_cxx_nonconsecutive_character): New.
	(pp_cxx_begin_template_argument_list): Likewise.
	(pp_cxx_end_template_argument_list): Likewise.
	(is_destructor_name): Likewise.
	(pp_cxx_unqualified_id): Likewise.
	(pp_cxx_qualified_id): Likewise.
	(pp_cxx_id_expression): Likewise.
	(pp_cxx_new_expression): Likewise.
	(pp_cxx_delete_expression): Likewise.
	(pp_cxx_pm_expression): Likewise.
	(pp_cxx_type_specifier): Rework.
	(pp_cxx_type_id): Likewise.
	(pp_cxx_primary_expression): Likewise.
	(pp_cxx_postfix_expression): Likewise.
	(pp_cxx_unary_expression): Likewise.
	(pp_cxx_multiplicative_expression): Likewise.
	(pp_cxx_conditional_expression): Likewise.
	(pp_cxx_assignment_expression): Likewise.
	(pp_cxx_pretty_printer_init): Tidy.

From-SVN: r70299
parent bae39a73
2003-08-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
* pretty-print.c (pp_base_indent): Rename from pp_indent.
* c-pretty-print.h (pp_c_pretty_print_flag)s: New datatype.
(struct c_pretty_print_info): Add more fields.
(pp_c_left_paren): Move to c-pretty-print.c.
(pp_c_right_paren): Likewise.
(pp_c_left_brace): Likewise.
(pp_c_right_brace): Likewise.
(pp_c_left_bracket): Likewise.
(pp_c_right_bracket): Likewise.
(pp_c_declarator): Declare.
(pp_c_direct_declarator): Likewise.
(pp_c_specifier_qualifier_list): Likewise.
(pp_c_type_id): Likewise.
* c-pretty-print.c (pp_c_cv_qualifier): Change prootype. Rework..
(pp_c_type_qualifier_list): New.
(pp_c_pointer): Likewise.
(pp_c_parameter_type_list): Likewise.
(pp_c_function_definition): Likewise.
(pp_c_id_expression): Likewise.
(pp_c_simple_type_specifier): Tidy.
(pp_c_unary_expression): Likewise.
(pp_c_expression): Likewise.
(pp_c_pretty_printer_init): Likewise.
(pp_c_specifier_qualifier_list): Rework..
(pp_c_abstract_declarator): Likewise.
(pp_c_postfix_expression): Likewise.
(pp_c_primary_expression): Likewise.
(pp_c_cast_expression): Likewise.
(pp_c_direct_abstract_declarator): Likewise.
(pp_c_storage_class_specifier): Likewise.
(pp_c_function_specifier): Likewise.
(pp_c_declaration_specifiers): Likewise.
(pp_c_direct_declarator): Likewise.
(pp_c_declarator): Likewise.
(pp_c_declaration): Likewise.
(pp_c_statement): Likewise.
(pp_c_integer_constant): Rename from pp_c_integer_literal.
(pp_c_character_constant): Rename from pp_c_character_literal.
(pp_c_bool_constant): Rename from pp_c_bool_literal.
(pp_c_enumeration_constant): Rename from pp_c_enumerator.
(pp_c_floating_constant): Rename from pp_c_real_literal.
(pp_c_constant): Rename from pp_c_literal.
* c-lang.c: Include diagnostic.h and c-pretty-print.h
(LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define.
(c_initialize_diagnostics): New.
* Makefile.in (c-lang.o): Update dependency.
2003-08-10 Nathan Sidwell <nathan@codesourcery.com> 2003-08-10 Nathan Sidwell <nathan@codesourcery.com>
* c-typeck.c (digest_init): Add conversion for VECTOR_TYPEs. * c-typeck.c (digest_init): Add conversion for VECTOR_TYPEs.
......
...@@ -1280,7 +1280,8 @@ c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ ...@@ -1280,7 +1280,8 @@ c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
$(LANGHOOKS_DEF_H) $(LANGHOOKS_DEF_H)
c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \ c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \
$(TARGET_H) flags.h intl.h output.h $(EXPR_H) $(RTL_H) toplev.h $(TM_P_H) $(TARGET_H) flags.h intl.h output.h $(EXPR_H) $(RTL_H) toplev.h $(TM_P_H)
c-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \ c-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
$(C_TREE_H) $(C_PRETTY_PRINT_H) $(DIAGNOSTIC_H) \
$(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-c.h $(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-c.h
c-lex.o : c-lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ c-lex.o : c-lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
$(RTL_H) debug.h $(C_TREE_H) $(C_COMMON_H) real.h c-incpath.h cppdefault.h \ $(RTL_H) debug.h $(C_TREE_H) $(C_COMMON_H) real.h c-incpath.h cppdefault.h \
......
...@@ -30,6 +30,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -30,6 +30,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ggc.h" #include "ggc.h"
#include "langhooks.h" #include "langhooks.h"
#include "langhooks-def.h" #include "langhooks-def.h"
#include "diagnostic.h"
#include "c-pretty-print.h"
static void c_initialize_diagnostics (diagnostic_context *);
enum c_language_kind c_language = clk_c; enum c_language_kind c_language = clk_c;
...@@ -43,6 +47,8 @@ enum c_language_kind c_language = clk_c; ...@@ -43,6 +47,8 @@ enum c_language_kind c_language = clk_c;
#define LANG_HOOKS_FINISH c_common_finish #define LANG_HOOKS_FINISH c_common_finish
#undef LANG_HOOKS_INIT_OPTIONS #undef LANG_HOOKS_INIT_OPTIONS
#define LANG_HOOKS_INIT_OPTIONS c_common_init_options #define LANG_HOOKS_INIT_OPTIONS c_common_init_options
#undef LANG_HOOKS_INITIALIZE_DIAGNOSTITCS
#define LANG_HOOKS_INITIALIZE_DIAGNOSTITCS c_initialize_diagnostics
#undef LANG_HOOKS_HANDLE_OPTION #undef LANG_HOOKS_HANDLE_OPTION
#define LANG_HOOKS_HANDLE_OPTION c_common_handle_option #define LANG_HOOKS_HANDLE_OPTION c_common_handle_option
#undef LANG_HOOKS_MISSING_ARGUMENT #undef LANG_HOOKS_MISSING_ARGUMENT
...@@ -218,4 +224,18 @@ finish_file (void) ...@@ -218,4 +224,18 @@ finish_file (void)
c_objc_common_finish_file (); c_objc_common_finish_file ();
} }
static void
c_initialize_diagnostics (diagnostic_context *context)
{
pretty_printer *base = context->printer;
c_pretty_printer pp = xmalloc (sizeof *pp);
memcpy (pp_base (pp), base, sizeof (pretty_printer));
pp_c_pretty_printer_init (pp);
context->printer = (pretty_printer *) pp;
/* It is safe to free this object because it was previously malloc()'d. */
free (base);
}
#include "gtype-c.h" #include "gtype-c.h"
...@@ -27,6 +27,13 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -27,6 +27,13 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "pretty-print.h" #include "pretty-print.h"
typedef enum
{
pp_c_flag_abstract = 1 << 1,
pp_c_flag_last_bit = 2
} pp_c_pretty_print_flags;
/* The data type used to bundle information necessary for pretty-printing /* The data type used to bundle information necessary for pretty-printing
a C or C++ entity. */ a C or C++ entity. */
typedef struct c_pretty_print_info *c_pretty_printer; typedef struct c_pretty_print_info *c_pretty_printer;
...@@ -41,18 +48,24 @@ struct c_pretty_print_info ...@@ -41,18 +48,24 @@ struct c_pretty_print_info
Not used yet. */ Not used yet. */
int *offset_list; int *offset_list;
pp_flags flags;
/* These must be overridden by each of the C and C++ front-end to /* These must be overridden by each of the C and C++ front-end to
reflect their understanding of syntactic productions when they differ. */ reflect their understanding of syntactic productions when they differ. */
c_pretty_print_fn declaration; c_pretty_print_fn declaration;
c_pretty_print_fn declaration_specifiers; c_pretty_print_fn declaration_specifiers;
c_pretty_print_fn type_specifier;
c_pretty_print_fn declarator; c_pretty_print_fn declarator;
c_pretty_print_fn abstract_declarator;
c_pretty_print_fn type_specifier;
c_pretty_print_fn direct_declarator; c_pretty_print_fn direct_declarator;
c_pretty_print_fn parameter_declaration; c_pretty_print_fn parameter_declaration;
c_pretty_print_fn type_id; c_pretty_print_fn type_id;
c_pretty_print_fn function_specifier;
c_pretty_print_fn storage_class_specifier;
c_pretty_print_fn statement; c_pretty_print_fn statement;
c_pretty_print_fn id_expression;
c_pretty_print_fn primary_expression; c_pretty_print_fn primary_expression;
c_pretty_print_fn postfix_expression; c_pretty_print_fn postfix_expression;
c_pretty_print_fn unary_expression; c_pretty_print_fn unary_expression;
...@@ -65,78 +78,50 @@ struct c_pretty_print_info ...@@ -65,78 +78,50 @@ struct c_pretty_print_info
#undef pp_base #undef pp_base
#define pp_base(PP) (&pp_c_base (PP)->base) #define pp_base(PP) (&pp_c_base (PP)->base)
#define pp_c_left_paren(PPI) \
do { \
pp_left_paren (PPI); \
pp_c_base (PPI)->base.padding = pp_none; \
} while (0)
#define pp_c_right_paren(PPI) \
do { \
pp_right_paren (PPI); \
pp_c_base (PPI)->base.padding = pp_none; \
} while (0)
#define pp_c_left_bracket(PPI) \
do { \
pp_left_bracket (PPI); \
pp_c_base (PPI)->base.padding = pp_none; \
} while (0)
#define pp_c_right_bracket(PPI) \
do { \
pp_right_bracket (PPI); \
pp_c_base (PPI)->base.padding = pp_none; \
} while (0)
#define pp_c_whitespace(PPI) \
do { \
pp_space (PPI); \
pp_c_base (PPI)->base.padding = pp_none; \
} while (0)
#define pp_c_maybe_whitespace(PPI) \
do { \
if (pp_c_base (PPI)->base.padding != pp_none) \
pp_c_whitespace (PPI); \
} while (0)
#define pp_c_identifier(PPI, ID) \
do { \
pp_c_maybe_whitespace (PPI); \
pp_identifier (PPI, ID); \
pp_c_base (PPI)->base.padding = pp_before; \
} while (0)
#define pp_c_tree_identifier(PPI, ID) \ #define pp_c_tree_identifier(PPI, ID) \
pp_c_identifier (PPI, IDENTIFIER_POINTER (ID)) pp_c_identifier (PPI, IDENTIFIER_POINTER (ID))
#define pp_declaration(PPI, T) \ #define pp_declaration(PPI, T) \
(*pp_c_base (PPI)->declaration) (pp_c_base (PPI), T) pp_c_base (PPI)->declaration (pp_c_base (PPI), T)
#define pp_declaration_specifiers(PPI, D) \ #define pp_declaration_specifiers(PPI, D) \
(*pp_c_base (PPI)->declaration_specifiers) (pp_c_base (PPI), D) pp_c_base (PPI)->declaration_specifiers (pp_c_base (PPI), D)
#define pp_abstract_declarator(PP, D) \
pp_c_base (PP)->abstract_declarator (pp_c_base (PP), D)
#define pp_type_specifier(PPI, D) \ #define pp_type_specifier(PPI, D) \
(*pp_c_base (PPI)->type_specifier) (pp_c_base (PPI), D) pp_c_base (PPI)->type_specifier (pp_c_base (PPI), D)
#define pp_declarator(PPI, D) \ #define pp_declarator(PPI, D) \
(*pp_c_base (PPI)->declarator) (pp_c_base (PPI), D) pp_c_base (PPI)->declarator (pp_c_base (PPI), D)
#define pp_direct_declarator(PPI, D) \ #define pp_direct_declarator(PPI, D) \
(*pp_c_base (PPI)->direct_declarator) (pp_c_base (PPI), D) pp_c_base (PPI)->direct_declarator (pp_c_base (PPI), D)
#define pp_parameter_declaration(PPI, T) \ #define pp_parameter_declaration(PPI, T) \
(*pp_c_base (PPI)->parameter_declaration) (pp_c_base (PPI), T) pp_c_base (PPI)->parameter_declaration (pp_c_base (PPI), T)
#define pp_type_id(PPI, D) \ #define pp_type_id(PPI, D) \
(*pp_c_base (PPI)->type_id) (pp_c_base (PPI), D) pp_c_base (PPI)->type_id (pp_c_base (PPI), D)
#define pp_function_specifier(PP, D) \
pp_c_base (PP)->function_specifier (pp_c_base (PP), D)
#define pp_storage_class_specifier(PP, D) \
pp_c_base (PP)->storage_class_specifier (pp_c_base (PP), D);
#define pp_statement(PPI, S) \ #define pp_statement(PPI, S) \
(*pp_c_base (PPI)->statement) (pp_c_base (PPI), S) pp_c_base (PPI)->statement (pp_c_base (PPI), S)
#define pp_id_expression(PP, E) \
pp_c_base (PP)->id_expression (pp_c_base (PP), E)
#define pp_primary_expression(PPI, E) \ #define pp_primary_expression(PPI, E) \
(*pp_c_base (PPI)->primary_expression) (pp_c_base (PPI), E) pp_c_base (PPI)->primary_expression (pp_c_base (PPI), E)
#define pp_postfix_expression(PPI, E) \ #define pp_postfix_expression(PPI, E) \
(*pp_c_base (PPI)->postfix_expression) (pp_c_base (PPI), E) pp_c_base (PPI)->postfix_expression (pp_c_base (PPI), E)
#define pp_unary_expression(PPI, E) \ #define pp_unary_expression(PPI, E) \
(*pp_c_base (PPI)->unary_expression) (pp_c_base (PPI), E) pp_c_base (PPI)->unary_expression (pp_c_base (PPI), E)
#define pp_initializer(PPI, E) \ #define pp_initializer(PPI, E) \
(*pp_c_base (PPI)->initializer) (pp_c_base (PPI), E) pp_c_base (PPI)->initializer (pp_c_base (PPI), E)
#define pp_multiplicative_expression(PPI, E) \ #define pp_multiplicative_expression(PPI, E) \
(*pp_c_base (PPI)->multiplicative_expression) (pp_c_base (PPI), E) pp_c_base (PPI)->multiplicative_expression (pp_c_base (PPI), E)
#define pp_conditional_expression(PPI, E) \ #define pp_conditional_expression(PPI, E) \
(*pp_c_base (PPI)->conditional_expression) (pp_c_base (PPI), E) pp_c_base (PPI)->conditional_expression (pp_c_base (PPI), E)
#define pp_assignment_expression(PPI, E) \ #define pp_assignment_expression(PPI, E) \
(*pp_c_base (PPI)->assignment_expression) (pp_c_base (PPI), E) pp_c_base (PPI)->assignment_expression (pp_c_base (PPI), E)
/* Returns the c_pretty_printer base object of PRETTY-PRINTER. This /* Returns the c_pretty_printer base object of PRETTY-PRINTER. This
...@@ -146,22 +131,28 @@ struct c_pretty_print_info ...@@ -146,22 +131,28 @@ struct c_pretty_print_info
extern void pp_c_pretty_printer_init (c_pretty_printer); extern void pp_c_pretty_printer_init (c_pretty_printer);
/* Declarations. */ /* Declarations. */
void pp_c_function_definition (c_pretty_printer, tree);
void pp_c_attributes (c_pretty_printer, tree); void pp_c_attributes (c_pretty_printer, tree);
void pp_c_cv_qualifier (c_pretty_printer, int); void pp_c_type_qualifier_list (c_pretty_printer, tree);
void pp_c_parameter_declaration_clause (c_pretty_printer, tree); void pp_c_parameter_declaration_clause (c_pretty_printer, tree);
void pp_c_declaration (c_pretty_printer, tree); void pp_c_declaration (c_pretty_printer, tree);
void pp_c_declarator (c_pretty_printer, tree);
void pp_c_direct_declarator (c_pretty_printer, tree);
void pp_c_specifier_qualifier_list (c_pretty_printer, tree);
void pp_c_type_id (c_pretty_printer, tree);
/* Statements. */ /* Statements. */
void pp_c_statement (c_pretty_printer, tree); void pp_c_statement (c_pretty_printer, tree);
/* Expressions. */ /* Expressions. */
void pp_c_expression (c_pretty_printer, tree); void pp_c_expression (c_pretty_printer, tree);
void pp_c_logical_or_expression (c_pretty_printer, tree); void pp_c_logical_or_expression (c_pretty_printer, tree);
void pp_c_expression_list (c_pretty_printer, tree); void pp_c_expression_list (c_pretty_printer, tree);
void pp_c_unary_expression (c_pretty_printer, tree);
void pp_c_cast_expression (c_pretty_printer, tree); void pp_c_cast_expression (c_pretty_printer, tree);
void pp_c_postfix_expression (c_pretty_printer, tree); void pp_c_postfix_expression (c_pretty_printer, tree);
void pp_c_initializer (c_pretty_printer, tree); void pp_c_initializer (c_pretty_printer, tree);
void pp_c_literal (c_pretty_printer, tree); void pp_c_constant (c_pretty_printer, tree);
void pp_c_id_expression (c_pretty_printer, tree);
void pp_c_identifier (c_pretty_printer, const char *);
void pp_c_string_literal (c_pretty_printer, tree); void pp_c_string_literal (c_pretty_printer, tree);
void pp_c_real_literal (c_pretty_printer, tree);
void pp_c_integer_literal (c_pretty_printer, tree);
#endif /* GCC_C_PRETTY_PRINTER */ #endif /* GCC_C_PRETTY_PRINTER */
2003-08-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
* error.c (dump_expr): Tidy.
* cxx-pretty-print.c (pp_cxx_nonconsecutive_character): New.
(pp_cxx_begin_template_argument_list): Likewise.
(pp_cxx_end_template_argument_list): Likewise.
(is_destructor_name): Likewise.
(pp_cxx_unqualified_id): Likewise.
(pp_cxx_qualified_id): Likewise.
(pp_cxx_id_expression): Likewise.
(pp_cxx_new_expression): Likewise.
(pp_cxx_delete_expression): Likewise.
(pp_cxx_pm_expression): Likewise.
(pp_cxx_type_specifier): Rework.
(pp_cxx_type_id): Likewise.
(pp_cxx_primary_expression): Likewise.
(pp_cxx_postfix_expression): Likewise.
(pp_cxx_unary_expression): Likewise.
(pp_cxx_multiplicative_expression): Likewise.
(pp_cxx_conditional_expression): Likewise.
(pp_cxx_assignment_expression): Likewise.
(pp_cxx_pretty_printer_init): Tidy.
2003-08-10 Nathan Sidwell <nathan@codesourcery.com> 2003-08-10 Nathan Sidwell <nathan@codesourcery.com>
* cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): non-NULL * cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): non-NULL
......
...@@ -27,6 +27,14 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -27,6 +27,14 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#undef pp_c_base #undef pp_c_base
#define pp_c_base(PP) (&(PP)->c_base) #define pp_c_base(PP) (&(PP)->c_base)
typedef enum
{
/* Ask for an qualified-id. */
pp_cxx_flag_qualified_id = 1 << pp_c_flag_last_bit,
pp_cxx_flag_global_scope = 1 << (pp_c_flag_last_bit + 1)
} cxx_pretty_printer_flags;
typedef struct typedef struct
{ {
struct c_pretty_print_info c_base; struct c_pretty_print_info c_base;
...@@ -38,7 +46,6 @@ void pp_cxx_pretty_printer_init (cxx_pretty_printer *); ...@@ -38,7 +46,6 @@ void pp_cxx_pretty_printer_init (cxx_pretty_printer *);
void pp_cxx_declaration (cxx_pretty_printer *, tree); void pp_cxx_declaration (cxx_pretty_printer *, tree);
void pp_cxx_statement (cxx_pretty_printer *, tree); void pp_cxx_statement (cxx_pretty_printer *, tree);
void pp_cxx_expression (cxx_pretty_printer *, tree);
#endif /* GCC_CXX_PRETTY_PRINT_H */ #endif /* GCC_CXX_PRETTY_PRINT_H */
...@@ -1331,38 +1331,9 @@ dump_expr (tree t, int flags) ...@@ -1331,38 +1331,9 @@ dump_expr (tree t, int flags)
break; break;
case INTEGER_CST: case INTEGER_CST:
{ case STRING_CST:
tree type = TREE_TYPE (t);
my_friendly_assert (type != 0, 81);
/* If it's an enum, output its tag, rather than its value. */
if (TREE_CODE (type) == ENUMERAL_TYPE)
{
tree values = TYPE_VALUES (type);
for (; values;
values = TREE_CHAIN (values))
if (tree_int_cst_equal (TREE_VALUE (values), t))
break;
if (values)
pp_tree_identifier (cxx_pp, TREE_PURPOSE (values));
else
{
/* Value must have been cast. */
pp_left_paren (cxx_pp);
dump_type (type, flags);
pp_right_paren (cxx_pp);
pp_c_integer_literal (pp_c_base (cxx_pp), t);
}
}
else
pp_c_integer_literal (pp_c_base (cxx_pp), t);
}
break;
case REAL_CST: case REAL_CST:
pp_c_real_literal (pp_c_base (cxx_pp), t); pp_c_constant (pp_c_base (cxx_pp), t);
break; break;
case PTRMEM_CST: case PTRMEM_CST:
...@@ -1372,10 +1343,6 @@ dump_expr (tree t, int flags) ...@@ -1372,10 +1343,6 @@ dump_expr (tree t, int flags)
pp_tree_identifier (cxx_pp, DECL_NAME (PTRMEM_CST_MEMBER (t))); pp_tree_identifier (cxx_pp, DECL_NAME (PTRMEM_CST_MEMBER (t)));
break; break;
case STRING_CST:
pp_c_string_literal (pp_c_base (cxx_pp), t);
break;
case COMPOUND_EXPR: case COMPOUND_EXPR:
pp_left_paren (cxx_pp); pp_left_paren (cxx_pp);
dump_expr (TREE_OPERAND (t, 0), flags | TFF_EXPR_IN_PARENS); dump_expr (TREE_OPERAND (t, 0), flags | TFF_EXPR_IN_PARENS);
......
...@@ -90,19 +90,6 @@ pp_clear_state (pretty_printer *pp) ...@@ -90,19 +90,6 @@ pp_clear_state (pretty_printer *pp)
pp_indentation (pp) = 0; pp_indentation (pp) = 0;
} }
/* Insert enough spaces into the output area of PRETTY-PRINTER to bring
the column position to the current indentation level, assuming that a
newline has just been written to the buffer. */
static void
pp_indent (pretty_printer *pp)
{
int n = pp_indentation (pp);
int i;
for (i = 0; i < n; ++i)
pp_space (pp);
}
/* Flush the formatted text of PRETTY-PRINTER onto the attached stream. */ /* Flush the formatted text of PRETTY-PRINTER onto the attached stream. */
static inline void static inline void
pp_write_text_to_stream (pretty_printer *pp) pp_write_text_to_stream (pretty_printer *pp)
...@@ -164,6 +151,19 @@ pp_append_r (pretty_printer *pp, const char *start, int length) ...@@ -164,6 +151,19 @@ pp_append_r (pretty_printer *pp, const char *start, int length)
pp->buffer->line_length += length; pp->buffer->line_length += length;
} }
/* Insert enough spaces into the output area of PRETTY-PRINTER to bring
the column position to the current indentation level, assuming that a
newline has just been written to the buffer. */
void
pp_base_indent (pretty_printer *pp)
{
int n = pp_indentation (pp);
int i;
for (i = 0; i < n; ++i)
pp_space (pp);
}
/* Format a message pointed to by TEXT. The following format specifiers are /* Format a message pointed to by TEXT. The following format specifiers are
recognized as being client independent: recognized as being client independent:
%d, %i: (signed) integer in base ten. %d, %i: (signed) integer in base ten.
...@@ -399,7 +399,7 @@ pp_base_emit_prefix (pretty_printer *pp) ...@@ -399,7 +399,7 @@ pp_base_emit_prefix (pretty_printer *pp)
case DIAGNOSTICS_SHOW_PREFIX_ONCE: case DIAGNOSTICS_SHOW_PREFIX_ONCE:
if (pp->emitted_prefix) if (pp->emitted_prefix)
{ {
pp_indent (pp); pp_base_indent (pp);
break; break;
} }
pp_indentation (pp) += 3; pp_indentation (pp) += 3;
......
...@@ -109,8 +109,6 @@ struct pretty_print_info ...@@ -109,8 +109,6 @@ struct pretty_print_info
/* The prefix for each new line. */ /* The prefix for each new line. */
const char *prefix; const char *prefix;
pp_flags flags;
/* Where to put whitespace around the entity being formatted. */ /* Where to put whitespace around the entity being formatted. */
pp_padding padding; pp_padding padding;
...@@ -202,6 +200,8 @@ struct pretty_print_info ...@@ -202,6 +200,8 @@ struct pretty_print_info
do { \ do { \
pp_indentation (PP) += N; \ pp_indentation (PP) += N; \
pp_newline (PP); \ pp_newline (PP); \
pp_base_indent (pp_base (PP)); \
pp_needs_newline (PP) = false; \
} while (0) } while (0)
#define pp_separate_with(PP, C) \ #define pp_separate_with(PP, C) \
do { \ do { \
...@@ -251,6 +251,7 @@ extern void pp_base_flush (pretty_printer *); ...@@ -251,6 +251,7 @@ extern void pp_base_flush (pretty_printer *);
extern void pp_base_format_text (pretty_printer *, text_info *); extern void pp_base_format_text (pretty_printer *, text_info *);
extern void pp_base_format_verbatim (pretty_printer *, text_info *); extern void pp_base_format_verbatim (pretty_printer *, text_info *);
extern void pp_base_indent (pretty_printer *);
extern void pp_base_newline (pretty_printer *); extern void pp_base_newline (pretty_printer *);
extern void pp_base_character (pretty_printer *, int); extern void pp_base_character (pretty_printer *, int);
extern void pp_base_string (pretty_printer *, const char *); extern void pp_base_string (pretty_printer *, const char *);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment