From: DJ Delorie Date: Wed, 7 Jan 2009 18:52:57 +0000 (+0000) Subject: merge from gcc X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=60cf58f5cfcd9fdb9671d6e73071bbe4f0496c44;p=binutils-gdb.git merge from gcc --- diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index f46fe05f379..b9cb1999177 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,12 @@ +2009-01-07 Jason Merrill + + * cp-demangle.c (d_expression): Remove mangling for zero-op casts. + +2009-01-06 Ben Elliston + + * cp-demangle.c (cplus_demangle_type): Return NULL if the + character following a 'D' cannot be recognised. + 2008-12-18 Jason Merrill PR c++/38561 diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index 5ae04c068f1..0b4e05c6e5c 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -2131,6 +2131,9 @@ cplus_demangle_type (struct d_info *di) peek = d_next_char (di); ret->u.s_fixed.sat = (peek == 's'); break; + + default: + return NULL; } break; @@ -2609,12 +2612,7 @@ d_expression (struct d_info *di) args = op->u.s_extended_operator.args; break; case DEMANGLE_COMPONENT_CAST: - if (d_peek_char (di) == 'v') - /* T() encoded as an operand of void. */ - return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op, - cplus_demangle_type (di)); - else - args = 1; + args = 1; break; } @@ -3807,12 +3805,7 @@ d_print_comp (struct d_print_info *dpi, d_print_cast (dpi, d_left (dc)); d_append_char (dpi, ')'); } - if (d_left (dc)->type == DEMANGLE_COMPONENT_CAST - && d_right (dc)->type == DEMANGLE_COMPONENT_BUILTIN_TYPE) - /* type() -- FIXME what about type(multiple,args) */ - d_append_string (dpi, "()"); - else - d_print_subexpr (dpi, d_right (dc)); + d_print_subexpr (dpi, d_right (dc)); return; case DEMANGLE_COMPONENT_BINARY: