From 60cf58f5cfcd9fdb9671d6e73071bbe4f0496c44 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Wed, 7 Jan 2009 18:52:57 +0000 Subject: [PATCH] merge from gcc --- libiberty/ChangeLog | 9 +++++++++ libiberty/cp-demangle.c | 17 +++++------------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index f46fe05..b9cb199 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 5ae04c0..0b4e05c 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: -- 2.7.4