OSDN Git Service

libiberty/:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 13 Nov 2010 01:21:12 +0000 (01:21 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 13 Nov 2010 01:21:12 +0000 (01:21 +0000)
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.
libstdc++/:
* testsuite/abi/demangle/abi_examples/14.cc (main): Change
expected demangling.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166695 138bc75d-0d04-0410-961f-82ee72b054a4

libiberty/ChangeLog
libiberty/cp-demangle.c
libiberty/testsuite/demangle-expected
libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc

index 62c60bd..8cd4a28 100644 (file)
@@ -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.
index 39c8cc0..8b0b825 100644 (file)
@@ -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)
index 0507ce8..5b15445 100644 (file)
@@ -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
index a82999b..f5a97b3 100644 (file)
@@ -1,3 +1,9 @@
+2010-11-12  Ian Lance Taylor  <iant@google.com>
+
+       PR other/46332
+       * testsuite/abi/demangle/abi_examples/14.cc (main): Change
+       expected demangling.
+
 2010-11-11  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * include/bits/move.h (forward): Implement N3143, resolving US 90.
index 010e469..98b9987 100644 (file)
@@ -33,7 +33,7 @@ int main()
     template void foo<int, fun, int>();
   */
   //demangle("_Z3fooIiPFidEiEvv", "void foo<int, int (*)(double), int>(void)");
-  verify_demangle("_Z3fooIiFvdEiEvv", "void foo<int, void ()(double), int>()");
+  verify_demangle("_Z3fooIiFvdEiEvv", "void foo<int, void (double), int>()");
 
   return 0;
 }