merge from gcc

This commit is contained in:
DJ Delorie
2010-01-21 02:05:11 +00:00
parent 612e7dfa04
commit 9ac9c2b6b0
2 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2010-01-20 Jason Merrill <jason@redhat.com>
PR c++/42338
* cp-demangle.c (d_print_comp): Fix array index printing.
2010-01-11 Tristan Gingold <gingold@adacore.com>
* cplus-dem.c (ada_demangle): Remove prototype.

View File

@ -4037,9 +4037,18 @@ d_print_comp (struct d_print_info *dpi,
d_append_char (dpi, '(');
d_print_subexpr (dpi, d_left (d_right (dc)));
if (strcmp (d_left (dc)->u.s_operator.op->code, "cl") != 0)
d_print_expr_op (dpi, d_left (dc));
d_print_subexpr (dpi, d_right (d_right (dc)));
if (strcmp (d_left (dc)->u.s_operator.op->code, "ix") == 0)
{
d_append_char (dpi, '[');
d_print_comp (dpi, d_right (d_right (dc)));
d_append_char (dpi, ']');
}
else
{
if (strcmp (d_left (dc)->u.s_operator.op->code, "cl") != 0)
d_print_expr_op (dpi, d_left (dc));
d_print_subexpr (dpi, d_right (d_right (dc)));
}
if (d_left (dc)->type == DEMANGLE_COMPONENT_OPERATOR
&& d_left (dc)->u.s_operator.op->len == 1