diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index e21c34f4d94..58a11425539 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,5 +1,10 @@ 2004-02-24 Ian Lance Taylor + * cp-demangle.c (d_print_comp) [UNARY]: Don't emit extra + parentheses around a cast. + * testsuite/demangle-expected: Adjust two test cases to match new + output. + * cp-demangle.c (__cxa_demangle): Pass DMGL_PARAMS to d_demangle. * cp-demangle.c (d_print_comp) [RESTRICT, VOLATILE, CONST]: Don't diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index 1205fcbe403..47ec0956fb2 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -3277,15 +3277,13 @@ d_print_comp (dpi, dc) d_print_expr_op (dpi, d_left (dc)); else { - d_append_string_constant (dpi, "(("); + d_append_char (dpi, '('); d_print_cast (dpi, d_left (dc)); d_append_char (dpi, ')'); } d_append_char (dpi, '('); d_print_comp (dpi, d_right (dc)); d_append_char (dpi, ')'); - if (d_left (dc)->type == DEMANGLE_COMPONENT_CAST) - d_append_char (dpi, ')'); return; case DEMANGLE_COMPONENT_BINARY: diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected index 5ede7ab9ef8..df32587f816 100644 --- a/libiberty/testsuite/demangle-expected +++ b/libiberty/testsuite/demangle-expected @@ -3591,13 +3591,13 @@ hairyfunc5 # This is from gcc PR 8861 --format=gnu-v3 --no-params _Z1fILi1ELc120EEv1AIXplT_cviLd810000000000000000703DAD7A370C5EEE -void f<1, 120>(A<(1) + (((int)((double)810000000000000000703DAD7A370C5)))>) +void f<1, 120>(A<(1) + ((int)((double)810000000000000000703DAD7A370C5))>) f<1, 120> # # This is also from gcc PR 8861 --format=gnu-v3 --no-params _Z1fILi1EEv1AIXplT_cvingLf3f800000EEE -void f<1>(A<(1) + (((int)(-((float)3f800000))))>) +void f<1>(A<(1) + ((int)(-((float)3f800000)))>) f<1> # # This is from a libstdc++ debug mode patch.