Commit fb22178f by Gabriel Dos Reis Committed by Gabriel Dos Reis

c-pretty-print.h (c_pretty_printer::postfix_expression): Now a virtual member function.

c-family/
	* c-pretty-print.h (c_pretty_printer::postfix_expression): Now a
	virtual member function.
	(pp_postfix_expression): Adjust.
	(pp_c_postfix_expression): Remove.
	* c-pretty-print.c (c_pretty_printer::postfix_expression): Rename
	from pp_c_postfix_expression.  Adjust.
	(c_pretty_printer::c_pretty_printer): Do not assign to
	postfix_expression.

cp/
	* cxx-pretty-print.h (cxx_pretty_printer::postfix_expression):
	Declare as overrider.
	* cxx-pretty-print.c (cxx_pretty_printer::postfix_expression):
	Rename from pp_cxx_postfix_expression.  Adjust.
	(pp_cxx_expression): Use pp_postfix_expression.
	(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
	postfix_expression.

From-SVN: r201985
parent 2c9d6efb
2013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net> 2013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
* c-pretty-print.h (c_pretty_printer::postfix_expression): Now a
virtual member function.
(pp_postfix_expression): Adjust.
(pp_c_postfix_expression): Remove.
* c-pretty-print.c (c_pretty_printer::postfix_expression): Rename
from pp_c_postfix_expression. Adjust.
(c_pretty_printer::c_pretty_printer): Do not assign to
postfix_expression.
2013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
* c-pretty-print.h (c_pretty_printer::primary_expression): Now a * c-pretty-print.h (c_pretty_printer::primary_expression): Now a
virtua member function. virtua member function.
(pp_primary_expression): Adjust. (pp_primary_expression): Adjust.
......
...@@ -1463,112 +1463,112 @@ c_pretty_printer::id_expression (tree t) ...@@ -1463,112 +1463,112 @@ c_pretty_printer::id_expression (tree t)
( type-name ) { initializer-list , } */ ( type-name ) { initializer-list , } */
void void
pp_c_postfix_expression (c_pretty_printer *pp, tree e) c_pretty_printer::postfix_expression (tree e)
{ {
enum tree_code code = TREE_CODE (e); enum tree_code code = TREE_CODE (e);
switch (code) switch (code)
{ {
case POSTINCREMENT_EXPR: case POSTINCREMENT_EXPR:
case POSTDECREMENT_EXPR: case POSTDECREMENT_EXPR:
pp_postfix_expression (pp, TREE_OPERAND (e, 0)); postfix_expression (TREE_OPERAND (e, 0));
pp_string (pp, code == POSTINCREMENT_EXPR ? "++" : "--"); pp_string (this, code == POSTINCREMENT_EXPR ? "++" : "--");
break; break;
case ARRAY_REF: case ARRAY_REF:
pp_postfix_expression (pp, TREE_OPERAND (e, 0)); postfix_expression (TREE_OPERAND (e, 0));
pp_c_left_bracket (pp); pp_c_left_bracket (this);
pp_expression (pp, TREE_OPERAND (e, 1)); pp_expression (this, TREE_OPERAND (e, 1));
pp_c_right_bracket (pp); pp_c_right_bracket (this);
break; break;
case ARRAY_NOTATION_REF: case ARRAY_NOTATION_REF:
pp_postfix_expression (pp, ARRAY_NOTATION_ARRAY (e)); postfix_expression (ARRAY_NOTATION_ARRAY (e));
pp_c_left_bracket (pp); pp_c_left_bracket (this);
pp_expression (pp, ARRAY_NOTATION_START (e)); pp_expression (this, ARRAY_NOTATION_START (e));
pp_colon (pp); pp_colon (this);
pp_expression (pp, ARRAY_NOTATION_LENGTH (e)); pp_expression (this, ARRAY_NOTATION_LENGTH (e));
pp_colon (pp); pp_colon (this);
pp_expression (pp, ARRAY_NOTATION_STRIDE (e)); pp_expression (this, ARRAY_NOTATION_STRIDE (e));
pp_c_right_bracket (pp); pp_c_right_bracket (this);
break; break;
case CALL_EXPR: case CALL_EXPR:
{ {
call_expr_arg_iterator iter; call_expr_arg_iterator iter;
tree arg; tree arg;
pp_postfix_expression (pp, CALL_EXPR_FN (e)); postfix_expression (CALL_EXPR_FN (e));
pp_c_left_paren (pp); pp_c_left_paren (this);
FOR_EACH_CALL_EXPR_ARG (arg, iter, e) FOR_EACH_CALL_EXPR_ARG (arg, iter, e)
{ {
pp_expression (pp, arg); pp_expression (this, arg);
if (more_call_expr_args_p (&iter)) if (more_call_expr_args_p (&iter))
pp_separate_with (pp, ','); pp_separate_with (this, ',');
} }
pp_c_right_paren (pp); pp_c_right_paren (this);
break; break;
} }
case UNORDERED_EXPR: case UNORDERED_EXPR:
pp_c_ws_string (pp, flag_isoc99 pp_c_ws_string (this, flag_isoc99
? "isunordered" ? "isunordered"
: "__builtin_isunordered"); : "__builtin_isunordered");
goto two_args_fun; goto two_args_fun;
case ORDERED_EXPR: case ORDERED_EXPR:
pp_c_ws_string (pp, flag_isoc99 pp_c_ws_string (this, flag_isoc99
? "!isunordered" ? "!isunordered"
: "!__builtin_isunordered"); : "!__builtin_isunordered");
goto two_args_fun; goto two_args_fun;
case UNLT_EXPR: case UNLT_EXPR:
pp_c_ws_string (pp, flag_isoc99 pp_c_ws_string (this, flag_isoc99
? "!isgreaterequal" ? "!isgreaterequal"
: "!__builtin_isgreaterequal"); : "!__builtin_isgreaterequal");
goto two_args_fun; goto two_args_fun;
case UNLE_EXPR: case UNLE_EXPR:
pp_c_ws_string (pp, flag_isoc99 pp_c_ws_string (this, flag_isoc99
? "!isgreater" ? "!isgreater"
: "!__builtin_isgreater"); : "!__builtin_isgreater");
goto two_args_fun; goto two_args_fun;
case UNGT_EXPR: case UNGT_EXPR:
pp_c_ws_string (pp, flag_isoc99 pp_c_ws_string (this, flag_isoc99
? "!islessequal" ? "!islessequal"
: "!__builtin_islessequal"); : "!__builtin_islessequal");
goto two_args_fun; goto two_args_fun;
case UNGE_EXPR: case UNGE_EXPR:
pp_c_ws_string (pp, flag_isoc99 pp_c_ws_string (this, flag_isoc99
? "!isless" ? "!isless"
: "!__builtin_isless"); : "!__builtin_isless");
goto two_args_fun; goto two_args_fun;
case UNEQ_EXPR: case UNEQ_EXPR:
pp_c_ws_string (pp, flag_isoc99 pp_c_ws_string (this, flag_isoc99
? "!islessgreater" ? "!islessgreater"
: "!__builtin_islessgreater"); : "!__builtin_islessgreater");
goto two_args_fun; goto two_args_fun;
case LTGT_EXPR: case LTGT_EXPR:
pp_c_ws_string (pp, flag_isoc99 pp_c_ws_string (this, flag_isoc99
? "islessgreater" ? "islessgreater"
: "__builtin_islessgreater"); : "__builtin_islessgreater");
goto two_args_fun; goto two_args_fun;
two_args_fun: two_args_fun:
pp_c_left_paren (pp); pp_c_left_paren (this);
pp_expression (pp, TREE_OPERAND (e, 0)); pp_expression (this, TREE_OPERAND (e, 0));
pp_separate_with (pp, ','); pp_separate_with (this, ',');
pp_expression (pp, TREE_OPERAND (e, 1)); pp_expression (this, TREE_OPERAND (e, 1));
pp_c_right_paren (pp); pp_c_right_paren (this);
break; break;
case ABS_EXPR: case ABS_EXPR:
pp_c_ws_string (pp, "__builtin_abs"); pp_c_ws_string (this, "__builtin_abs");
pp_c_left_paren (pp); pp_c_left_paren (this);
pp_expression (pp, TREE_OPERAND (e, 0)); pp_expression (this, TREE_OPERAND (e, 0));
pp_c_right_paren (pp); pp_c_right_paren (this);
break; break;
case COMPONENT_REF: case COMPONENT_REF:
...@@ -1576,15 +1576,15 @@ pp_c_postfix_expression (c_pretty_printer *pp, tree e) ...@@ -1576,15 +1576,15 @@ pp_c_postfix_expression (c_pretty_printer *pp, tree e)
tree object = TREE_OPERAND (e, 0); tree object = TREE_OPERAND (e, 0);
if (TREE_CODE (object) == INDIRECT_REF) if (TREE_CODE (object) == INDIRECT_REF)
{ {
pp_postfix_expression (pp, TREE_OPERAND (object, 0)); postfix_expression (TREE_OPERAND (object, 0));
pp_c_arrow (pp); pp_c_arrow (this);
} }
else else
{ {
pp_postfix_expression (pp, object); postfix_expression (object);
pp_c_dot (pp); pp_c_dot (this);
} }
pp_expression (pp, TREE_OPERAND (e, 1)); pp_expression (this, TREE_OPERAND (e, 1));
} }
break; break;
...@@ -1600,63 +1600,63 @@ pp_c_postfix_expression (c_pretty_printer *pp, tree e) ...@@ -1600,63 +1600,63 @@ pp_c_postfix_expression (c_pretty_printer *pp, tree e)
HOST_WIDE_INT size = tree_low_cst (TYPE_SIZE (type), 0); HOST_WIDE_INT size = tree_low_cst (TYPE_SIZE (type), 0);
if ((bitpos % size) == 0) if ((bitpos % size) == 0)
{ {
pp_c_left_paren (pp); pp_c_left_paren (this);
pp_c_left_paren (pp); pp_c_left_paren (this);
pp_type_id (pp, type); pp_type_id (this, type);
pp_c_star (pp); pp_c_star (this);
pp_c_right_paren (pp); pp_c_right_paren (this);
pp_c_ampersand (pp); pp_c_ampersand (this);
pp_expression (pp, TREE_OPERAND (e, 0)); pp_expression (this, TREE_OPERAND (e, 0));
pp_c_right_paren (pp); pp_c_right_paren (this);
pp_c_left_bracket (pp); pp_c_left_bracket (this);
pp_wide_integer (pp, bitpos / size); pp_wide_integer (this, bitpos / size);
pp_c_right_bracket (pp); pp_c_right_bracket (this);
break; break;
} }
} }
pp_unsupported_tree (pp, e); pp_unsupported_tree (this, e);
} }
break; break;
case MEM_REF: case MEM_REF:
pp_c_expression (pp, e); pp_c_expression (this, e);
break; break;
case COMPLEX_CST: case COMPLEX_CST:
case VECTOR_CST: case VECTOR_CST:
pp_c_compound_literal (pp, e); pp_c_compound_literal (this, e);
break; break;
case COMPLEX_EXPR: case COMPLEX_EXPR:
pp_c_complex_expr (pp, e); pp_c_complex_expr (this, e);
break; break;
case COMPOUND_LITERAL_EXPR: case COMPOUND_LITERAL_EXPR:
e = DECL_INITIAL (COMPOUND_LITERAL_EXPR_DECL (e)); e = DECL_INITIAL (COMPOUND_LITERAL_EXPR_DECL (e));
/* Fall through. */ /* Fall through. */
case CONSTRUCTOR: case CONSTRUCTOR:
pp_initializer (pp, e); pp_initializer (this, e);
break; break;
case VA_ARG_EXPR: case VA_ARG_EXPR:
pp_c_ws_string (pp, "__builtin_va_arg"); pp_c_ws_string (this, "__builtin_va_arg");
pp_c_left_paren (pp); pp_c_left_paren (this);
pp_assignment_expression (pp, TREE_OPERAND (e, 0)); pp_assignment_expression (this, TREE_OPERAND (e, 0));
pp_separate_with (pp, ','); pp_separate_with (this, ',');
pp_type_id (pp, TREE_TYPE (e)); pp_type_id (this, TREE_TYPE (e));
pp_c_right_paren (pp); pp_c_right_paren (this);
break; break;
case ADDR_EXPR: case ADDR_EXPR:
if (TREE_CODE (TREE_OPERAND (e, 0)) == FUNCTION_DECL) if (TREE_CODE (TREE_OPERAND (e, 0)) == FUNCTION_DECL)
{ {
pp_id_expression (pp, TREE_OPERAND (e, 0)); id_expression (TREE_OPERAND (e, 0));
break; break;
} }
/* else fall through. */ /* else fall through. */
default: default:
pp_primary_expression (pp, e); primary_expression (e);
break; break;
} }
} }
...@@ -2344,7 +2344,6 @@ c_pretty_printer::c_pretty_printer () ...@@ -2344,7 +2344,6 @@ c_pretty_printer::c_pretty_printer ()
statement = pp_c_statement; statement = pp_c_statement;
postfix_expression = pp_c_postfix_expression;
unary_expression = pp_c_unary_expression; unary_expression = pp_c_unary_expression;
initializer = pp_c_initializer; initializer = pp_c_initializer;
multiplicative_expression = pp_c_multiplicative_expression; multiplicative_expression = pp_c_multiplicative_expression;
......
...@@ -57,6 +57,7 @@ struct c_pretty_printer : pretty_printer ...@@ -57,6 +57,7 @@ struct c_pretty_printer : pretty_printer
virtual void constant (tree); virtual void constant (tree);
virtual void id_expression (tree); virtual void id_expression (tree);
virtual void primary_expression (tree); virtual void primary_expression (tree);
virtual void postfix_expression (tree);
/* Points to the first element of an array of offset-list. /* Points to the first element of an array of offset-list.
Not used yet. */ Not used yet. */
int *offset_list; int *offset_list;
...@@ -82,7 +83,6 @@ struct c_pretty_printer : pretty_printer ...@@ -82,7 +83,6 @@ struct c_pretty_printer : pretty_printer
c_pretty_print_fn statement; c_pretty_print_fn statement;
c_pretty_print_fn postfix_expression;
c_pretty_print_fn unary_expression; c_pretty_print_fn unary_expression;
c_pretty_print_fn multiplicative_expression; c_pretty_print_fn multiplicative_expression;
c_pretty_print_fn conditional_expression; c_pretty_print_fn conditional_expression;
...@@ -115,7 +115,7 @@ struct c_pretty_printer : pretty_printer ...@@ -115,7 +115,7 @@ struct c_pretty_printer : pretty_printer
#define pp_constant(PP, E) (PP)->constant (E) #define pp_constant(PP, E) (PP)->constant (E)
#define pp_id_expression(PP, E) (PP)->id_expression (E) #define pp_id_expression(PP, E) (PP)->id_expression (E)
#define pp_primary_expression(PP, E) (PP)->primary_expression (E) #define pp_primary_expression(PP, E) (PP)->primary_expression (E)
#define pp_postfix_expression(PP, E) (PP)->postfix_expression (PP, E) #define pp_postfix_expression(PP, E) (PP)->postfix_expression (E)
#define pp_unary_expression(PP, E) (PP)->unary_expression (PP, E) #define pp_unary_expression(PP, E) (PP)->unary_expression (PP, E)
#define pp_initializer(PP, E) (PP)->initializer (PP, E) #define pp_initializer(PP, E) (PP)->initializer (PP, E)
#define pp_multiplicative_expression(PP, E) \ #define pp_multiplicative_expression(PP, E) \
...@@ -169,7 +169,6 @@ void pp_c_constructor_elts (c_pretty_printer *, vec<constructor_elt, va_gc> *); ...@@ -169,7 +169,6 @@ void pp_c_constructor_elts (c_pretty_printer *, vec<constructor_elt, va_gc> *);
void pp_c_call_argument_list (c_pretty_printer *, tree); void pp_c_call_argument_list (c_pretty_printer *, tree);
void pp_c_unary_expression (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_init_declarator (c_pretty_printer *, tree); void pp_c_init_declarator (c_pretty_printer *, tree);
void pp_c_ws_string (c_pretty_printer *, const char *); void pp_c_ws_string (c_pretty_printer *, const char *);
void pp_c_identifier (c_pretty_printer *, const char *); void pp_c_identifier (c_pretty_printer *, const char *);
......
2013-08-25 Gabriel Dos Reis <gdr@cs.tamu.edu> 2013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
* cxx-pretty-print.h (cxx_pretty_printer::postfix_expression):
Declare as overrider.
* cxx-pretty-print.c (cxx_pretty_printer::postfix_expression):
Rename from pp_cxx_postfix_expression. Adjust.
(pp_cxx_expression): Use pp_postfix_expression.
(cxx_pretty_printer::cxx_pretty_printer): Do not assign to
postfix_expression.
2013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
* cxx-pretty-print.h (cxx_pretty_printer::primary_expression): Now * cxx-pretty-print.h (cxx_pretty_printer::primary_expression): Now
an overrider of c_pretty_printer::primary_expression. an overrider of c_pretty_printer::primary_expression.
......
...@@ -487,8 +487,8 @@ cxx_pretty_printer::primary_expression (tree t) ...@@ -487,8 +487,8 @@ cxx_pretty_printer::primary_expression (tree t)
typeid ( expression ) typeid ( expression )
typeid ( type-id ) */ typeid ( type-id ) */
static void void
pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t) cxx_pretty_printer::postfix_expression (tree t)
{ {
enum tree_code code = TREE_CODE (t); enum tree_code code = TREE_CODE (t);
...@@ -499,7 +499,7 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t) ...@@ -499,7 +499,7 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t)
{ {
tree fun = (code == AGGR_INIT_EXPR ? AGGR_INIT_EXPR_FN (t) tree fun = (code == AGGR_INIT_EXPR ? AGGR_INIT_EXPR_FN (t)
: CALL_EXPR_FN (t)); : CALL_EXPR_FN (t));
tree saved_scope = pp->enclosing_scope; tree saved_scope = enclosing_scope;
bool skipfirst = false; bool skipfirst = false;
tree arg; tree arg;
...@@ -528,21 +528,21 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t) ...@@ -528,21 +528,21 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t)
if (!TYPE_PTR_P (TREE_TYPE (object))) if (!TYPE_PTR_P (TREE_TYPE (object)))
{ {
pp_cxx_postfix_expression (pp, object); postfix_expression (object);
pp_cxx_dot (pp); pp_cxx_dot (this);
} }
else else
{ {
pp_cxx_postfix_expression (pp, object); postfix_expression (object);
pp_cxx_arrow (pp); pp_cxx_arrow (this);
} }
skipfirst = true; skipfirst = true;
pp->enclosing_scope = strip_pointer_operator (TREE_TYPE (object)); enclosing_scope = strip_pointer_operator (TREE_TYPE (object));
} }
pp_cxx_postfix_expression (pp, fun); postfix_expression (fun);
pp->enclosing_scope = saved_scope; enclosing_scope = saved_scope;
pp_cxx_left_paren (pp); pp_cxx_left_paren (this);
if (code == AGGR_INIT_EXPR) if (code == AGGR_INIT_EXPR)
{ {
aggr_init_expr_arg_iterator iter; aggr_init_expr_arg_iterator iter;
...@@ -552,9 +552,9 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t) ...@@ -552,9 +552,9 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t)
skipfirst = false; skipfirst = false;
else else
{ {
pp_cxx_expression (pp, arg); pp_cxx_expression (this, arg);
if (more_aggr_init_expr_args_p (&iter)) if (more_aggr_init_expr_args_p (&iter))
pp_cxx_separate_with (pp, ','); pp_cxx_separate_with (this, ',');
} }
} }
} }
...@@ -567,18 +567,18 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t) ...@@ -567,18 +567,18 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t)
skipfirst = false; skipfirst = false;
else else
{ {
pp_cxx_expression (pp, arg); pp_cxx_expression (this, arg);
if (more_call_expr_args_p (&iter)) if (more_call_expr_args_p (&iter))
pp_cxx_separate_with (pp, ','); pp_cxx_separate_with (this, ',');
} }
} }
} }
pp_cxx_right_paren (pp); pp_cxx_right_paren (this);
} }
if (code == AGGR_INIT_EXPR && AGGR_INIT_VIA_CTOR_P (t)) if (code == AGGR_INIT_EXPR && AGGR_INIT_VIA_CTOR_P (t))
{ {
pp_cxx_separate_with (pp, ','); pp_cxx_separate_with (this, ',');
pp_cxx_postfix_expression (pp, AGGR_INIT_EXPR_SLOT (t)); postfix_expression (AGGR_INIT_EXPR_SLOT (t));
} }
break; break;
...@@ -591,7 +591,7 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t) ...@@ -591,7 +591,7 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t)
case CONST_DECL: case CONST_DECL:
case TEMPLATE_DECL: case TEMPLATE_DECL:
case RESULT_DECL: case RESULT_DECL:
pp_primary_expression (pp, t); primary_expression (t);
break; break;
case DYNAMIC_CAST_EXPR: case DYNAMIC_CAST_EXPR:
...@@ -599,47 +599,47 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t) ...@@ -599,47 +599,47 @@ pp_cxx_postfix_expression (cxx_pretty_printer *pp, tree t)
case REINTERPRET_CAST_EXPR: case REINTERPRET_CAST_EXPR:
case CONST_CAST_EXPR: case CONST_CAST_EXPR:
if (code == DYNAMIC_CAST_EXPR) if (code == DYNAMIC_CAST_EXPR)
pp_cxx_ws_string (pp, "dynamic_cast"); pp_cxx_ws_string (this, "dynamic_cast");
else if (code == STATIC_CAST_EXPR) else if (code == STATIC_CAST_EXPR)
pp_cxx_ws_string (pp, "static_cast"); pp_cxx_ws_string (this, "static_cast");
else if (code == REINTERPRET_CAST_EXPR) else if (code == REINTERPRET_CAST_EXPR)
pp_cxx_ws_string (pp, "reinterpret_cast"); pp_cxx_ws_string (this, "reinterpret_cast");
else else
pp_cxx_ws_string (pp, "const_cast"); pp_cxx_ws_string (this, "const_cast");
pp_cxx_begin_template_argument_list (pp); pp_cxx_begin_template_argument_list (this);
pp_cxx_type_id (pp, TREE_TYPE (t)); pp_cxx_type_id (this, TREE_TYPE (t));
pp_cxx_end_template_argument_list (pp); pp_cxx_end_template_argument_list (this);
pp_left_paren (pp); pp_left_paren (this);
pp_cxx_expression (pp, TREE_OPERAND (t, 0)); pp_cxx_expression (this, TREE_OPERAND (t, 0));
pp_right_paren (pp); pp_right_paren (this);
break; break;
case EMPTY_CLASS_EXPR: case EMPTY_CLASS_EXPR:
pp_cxx_type_id (pp, TREE_TYPE (t)); pp_cxx_type_id (this, TREE_TYPE (t));
pp_left_paren (pp); pp_left_paren (this);
pp_right_paren (pp); pp_right_paren (this);
break; break;
case TYPEID_EXPR: case TYPEID_EXPR:
pp_cxx_typeid_expression (pp, t); pp_cxx_typeid_expression (this, t);
break; break;
case PSEUDO_DTOR_EXPR: case PSEUDO_DTOR_EXPR:
pp_cxx_postfix_expression (pp, TREE_OPERAND (t, 0)); postfix_expression (TREE_OPERAND (t, 0));
pp_cxx_dot (pp); pp_cxx_dot (this);
pp_cxx_qualified_id (pp, TREE_OPERAND (t, 1)); pp_cxx_qualified_id (this, TREE_OPERAND (t, 1));
pp_cxx_colon_colon (pp); pp_cxx_colon_colon (this);
pp_complement (pp); pp_complement (this);
pp_cxx_unqualified_id (pp, TREE_OPERAND (t, 2)); pp_cxx_unqualified_id (this, TREE_OPERAND (t, 2));
break; break;
case ARROW_EXPR: case ARROW_EXPR:
pp_cxx_postfix_expression (pp, TREE_OPERAND (t, 0)); postfix_expression (TREE_OPERAND (t, 0));
pp_cxx_arrow (pp); pp_cxx_arrow (this);
break; break;
default: default:
pp_c_postfix_expression (pp, t); c_pretty_printer::postfix_expression (t);
break; break;
} }
} }
...@@ -1085,7 +1085,7 @@ pp_cxx_expression (cxx_pretty_printer *pp, tree t) ...@@ -1085,7 +1085,7 @@ pp_cxx_expression (cxx_pretty_printer *pp, tree t)
case PSEUDO_DTOR_EXPR: case PSEUDO_DTOR_EXPR:
case AGGR_INIT_EXPR: case AGGR_INIT_EXPR:
case ARROW_EXPR: case ARROW_EXPR:
pp_cxx_postfix_expression (pp, t); pp_postfix_expression (pp, t);
break; break;
case NEW_EXPR: case NEW_EXPR:
...@@ -2448,7 +2448,6 @@ cxx_pretty_printer::cxx_pretty_printer () ...@@ -2448,7 +2448,6 @@ cxx_pretty_printer::cxx_pretty_printer ()
/* pp->statement = (pp_fun) pp_cxx_statement; */ /* pp->statement = (pp_fun) pp_cxx_statement; */
postfix_expression = (pp_fun) pp_cxx_postfix_expression;
unary_expression = (pp_fun) pp_cxx_unary_expression; unary_expression = (pp_fun) pp_cxx_unary_expression;
multiplicative_expression = (pp_fun) pp_cxx_multiplicative_expression; multiplicative_expression = (pp_fun) pp_cxx_multiplicative_expression;
conditional_expression = (pp_fun) pp_cxx_conditional_expression; conditional_expression = (pp_fun) pp_cxx_conditional_expression;
......
...@@ -36,6 +36,7 @@ struct cxx_pretty_printer : c_pretty_printer ...@@ -36,6 +36,7 @@ struct cxx_pretty_printer : c_pretty_printer
void constant (tree); void constant (tree);
void id_expression (tree); void id_expression (tree);
void primary_expression (tree); void primary_expression (tree);
void postfix_expression (tree);
/* This is the enclosing scope of the entity being pretty-printed. */ /* This is the enclosing scope of the entity being pretty-printed. */
tree enclosing_scope; tree enclosing_scope;
}; };
......
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