]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cp-demangle.c (d_print_function_type): Print the function parameters with no modifiers.
authorIan Lance Taylor <ian@wasabisystems.com>
Mon, 15 Dec 2003 23:29:31 +0000 (23:29 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Mon, 15 Dec 2003 23:29:31 +0000 (23:29 +0000)
* cp-demangle.c (d_print_function_type): Print the function
parameters with no modifiers.
* testsuite/demangle-expected: Add test case.

From-SVN: r74652

libiberty/ChangeLog
libiberty/cp-demangle.c
libiberty/testsuite/demangle-expected

index c33e83b3ef81b7c293cc45ba8fb2d9ccc988826d..0a027a0c4567f645316f9b76ab2f37253a9f6145 100644 (file)
@@ -1,5 +1,9 @@
 2003-12-15  Ian Lance Taylor  <ian@wasabisystems.com>
 
+       * cp-demangle.c (d_print_function_type): Print the function
+       parameters with no modifiers.
+       * testsuite/demangle-expected: Add test case.
+
        * cp-demangle.c (d_demangle): If DMGL_PARAMS is not set, don't
        expect that we've read the entire string.
        (is_ctor_or_dtor): Don't expect that we've read the entire
index 7a806dc44b21ce9de8eb5100e6885f09baaa4ae5..f6c0543c8c3cbfbd0504d362ab43183da632037d 100644 (file)
@@ -3396,7 +3396,14 @@ d_print_function_type (dpi, dc, mods)
   d_append_char (dpi, '(');
 
   if (d_right (dc) != NULL)
-    d_print_comp (dpi, d_right (dc));
+    {
+      struct d_print_mod *hold_modifiers;
+
+      hold_modifiers = dpi->modifiers;
+      dpi->modifiers = NULL;
+      d_print_comp (dpi, d_right (dc));
+      dpi->modifiers = hold_modifiers;
+    }
 
   d_append_char (dpi, ')');
 
index b39e2f4386b4829f467dab976856bf5812688562..7452338e1b3dd04df4c2f5fa8a74319569a03b4e 100644 (file)
@@ -2916,6 +2916,11 @@ void f<-1>()
 _ZNSdD0Ev
 std::basic_iostream<char, std::char_traits<char> >::~basic_iostream()
 #
+# Another case where we got member function qualifiers wrong.
+--format=gnu-v3
+_ZNK15nsBaseHashtableI15nsUint32HashKey8nsCOMPtrI4IFooEPS2_E13EnumerateReadEPF15PLDHashOperatorRKjS4_PvES9_
+nsBaseHashtable<nsUint32HashKey, nsCOMPtr<IFoo>, IFoo*>::EnumerateRead(PLDHashOperator (*)(unsigned int const&, IFoo*, void*), void*) const
+#
 # This caused an infinite loop.
 #
 # This is generated by an EDG compiler (kcc 4.0).  To demangle it