bootstrapped and same test results on x86_64-linux-gnu against r201084 gcc/cp/ * cxx-pretty-print.h (cxx_pretty_printer): inherit from c_pretty_printer instead of include it. * (cxx_pretty_print.c): adjust accordingly.
--- gcc/cp/cxx-pretty-print.c | 40 ++++++++++++++++++++-------------------- gcc/cp/cxx-pretty-print.h | 7 +++---- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/gcc/cp/cxx-pretty-print.c b/gcc/cp/cxx-pretty-print.c index ef8df70..89d14da 100644 --- a/gcc/cp/cxx-pretty-print.c +++ b/gcc/cp/cxx-pretty-print.c @@ -2440,29 +2440,29 @@ pp_cxx_pretty_printer_init (cxx_pretty_printer *pp) pp_c_pretty_printer_init (pp_c_base (pp)); pp_set_line_maximum_length (pp, 0); - pp->c_base.declaration = (pp_fun) pp_cxx_declaration; - pp->c_base.declaration_specifiers = (pp_fun) pp_cxx_decl_specifier_seq; - pp->c_base.function_specifier = (pp_fun) pp_cxx_function_specifier; - pp->c_base.type_specifier_seq = (pp_fun) pp_cxx_type_specifier_seq; - pp->c_base.declarator = (pp_fun) pp_cxx_declarator; - pp->c_base.direct_declarator = (pp_fun) pp_cxx_direct_declarator; - pp->c_base.parameter_list = (pp_fun) pp_cxx_parameter_declaration_clause; - pp->c_base.type_id = (pp_fun) pp_cxx_type_id; - pp->c_base.abstract_declarator = (pp_fun) pp_cxx_abstract_declarator; - pp->c_base.direct_abstract_declarator = + pp->declaration = (pp_fun) pp_cxx_declaration; + pp->declaration_specifiers = (pp_fun) pp_cxx_decl_specifier_seq; + pp->function_specifier = (pp_fun) pp_cxx_function_specifier; + pp->type_specifier_seq = (pp_fun) pp_cxx_type_specifier_seq; + pp->declarator = (pp_fun) pp_cxx_declarator; + pp->direct_declarator = (pp_fun) pp_cxx_direct_declarator; + pp->parameter_list = (pp_fun) pp_cxx_parameter_declaration_clause; + pp->type_id = (pp_fun) pp_cxx_type_id; + pp->abstract_declarator = (pp_fun) pp_cxx_abstract_declarator; + pp->direct_abstract_declarator = (pp_fun) pp_cxx_direct_abstract_declarator; - pp->c_base.simple_type_specifier = (pp_fun)pp_cxx_simple_type_specifier; + pp->simple_type_specifier = (pp_fun)pp_cxx_simple_type_specifier; /* pp->c_base.statement = (pp_fun) pp_cxx_statement; */ - pp->c_base.constant = (pp_fun) pp_cxx_constant; - pp->c_base.id_expression = (pp_fun) pp_cxx_id_expression; - pp->c_base.primary_expression = (pp_fun) pp_cxx_primary_expression; - pp->c_base.postfix_expression = (pp_fun) pp_cxx_postfix_expression; - pp->c_base.unary_expression = (pp_fun) pp_cxx_unary_expression; - pp->c_base.multiplicative_expression = (pp_fun) pp_cxx_multiplicative_expression; - pp->c_base.conditional_expression = (pp_fun) pp_cxx_conditional_expression; - pp->c_base.assignment_expression = (pp_fun) pp_cxx_assignment_expression; - pp->c_base.expression = (pp_fun) pp_cxx_expression; + pp->constant = (pp_fun) pp_cxx_constant; + pp->id_expression = (pp_fun) pp_cxx_id_expression; + pp->primary_expression = (pp_fun) pp_cxx_primary_expression; + pp->postfix_expression = (pp_fun) pp_cxx_postfix_expression; + pp->unary_expression = (pp_fun) pp_cxx_unary_expression; + pp->multiplicative_expression = (pp_fun) pp_cxx_multiplicative_expression; + pp->conditional_expression = (pp_fun) pp_cxx_conditional_expression; + pp->assignment_expression = (pp_fun) pp_cxx_assignment_expression; + pp->expression = (pp_fun) pp_cxx_expression; pp->enclosing_scope = global_namespace; } diff --git a/gcc/cp/cxx-pretty-print.h b/gcc/cp/cxx-pretty-print.h index 0f7dc4a..f93287e 100644 --- a/gcc/cp/cxx-pretty-print.h +++ b/gcc/cp/cxx-pretty-print.h @@ -24,7 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "c-family/c-pretty-print.h" #undef pp_c_base -#define pp_c_base(PP) (&(PP)->c_base) +#define pp_c_base(PP) (PP) typedef enum { @@ -33,12 +33,11 @@ typedef enum } cxx_pretty_printer_flags; -typedef struct +struct cxx_pretty_printer : public c_pretty_printer { - c_pretty_printer c_base; /* This is the enclosing scope of the entity being pretty-printed. */ tree enclosing_scope; -} cxx_pretty_printer; +}; #define pp_cxx_cv_qualifier_seq(PP, T) \ pp_c_type_qualifier_list (pp_c_base (PP), T) -- 1.8.4.rc0