diff options
-rw-r--r-- | libiberty/ChangeLog | 7 | ||||
-rw-r--r-- | libiberty/cp-demangle.c | 6 | ||||
-rw-r--r-- | libiberty/testsuite/demangle-expected | 9 |
3 files changed, 14 insertions, 8 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 62c60bd..8cd4a28 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,10 @@ +2010-11-12 Ian Lance Taylor <iant@google.com> + + PR other/46332 + * cp-demangle.c (d_print_function_type): Don't print parentheses + if there are no modifiers to print. + * testsuite/demangle-expected: Tweak one test case, add another. + 2010-11-04 Richard Henderson <rth@redhat.com> * configure.ac (AC_CHECK_HEADERS): Add process.h. diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index 39c8cc0..8b0b825 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -4546,20 +4546,17 @@ d_print_function_type (struct d_print_info *dpi, struct d_print_mod *mods) { int need_paren; - int saw_mod; int need_space; struct d_print_mod *p; struct d_print_mod *hold_modifiers; need_paren = 0; - saw_mod = 0; need_space = 0; for (p = mods; p != NULL; p = p->next) { if (p->printed) break; - saw_mod = 1; switch (p->mod->type) { case DEMANGLE_COMPONENT_POINTER: @@ -4588,9 +4585,6 @@ d_print_function_type (struct d_print_info *dpi, break; } - if (d_left (dc) != NULL && ! saw_mod) - need_paren = 1; - if (need_paren) { if (! need_space) diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected index 0507ce8..5b15445 100644 --- a/libiberty/testsuite/demangle-expected +++ b/libiberty/testsuite/demangle-expected @@ -3325,8 +3325,13 @@ first<Duo> # --format=gnu-v3 --no-params _Z3fooIiFvdEiEvv -void foo<int, void ()(double), int>() -foo<int, void ()(double), int> +void foo<int, void (double), int>() +foo<int, void (double), int> +# +--format=gnu-v3 --no-params +_Z1fIFvvEEvv +void f<void ()>() +f<void ()> # --format=gnu-v3 --no-params _ZN1N1fE |