merge from gcc
authorDJ Delorie <dj@redhat.com>
Fri, 23 Mar 2001 23:57:50 +0000 (23:57 +0000)
committerDJ Delorie <dj@redhat.com>
Fri, 23 Mar 2001 23:57:50 +0000 (23:57 +0000)
libiberty/ChangeLog
libiberty/cp-demangle.c

index f6e537faff3db2146f045a23953bb9b54b972d30..5780bcdc38355b2f47be372c58fbb57e5577fc0f 100644 (file)
@@ -1,3 +1,8 @@
+2001-03-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * cp-demangle.c (demangle_discriminator): `_0' is discriminator #1,
+       `_' not followed by a digit is invalid.
+
 2001-03-22  Jim Blandy  <jimb@redhat.com>
 
        * cp-demangle.c (string_list_delete): Use dyn_string_delete
index b8255b3a26c9e283c95c3d4fb0de9e9e98689d60..8419eef34259093a916bdeb5bf0628a4f3a1456b 100644 (file)
@@ -3446,15 +3446,11 @@ demangle_discriminator (dm, suppress_first)
            /* Write the discriminator.  The mangled number is two
               less than the discriminator ordinal, counting from
               zero.  */
-           RETURN_IF_ERROR (int_to_dyn_string (discriminator + 2, 
+           RETURN_IF_ERROR (int_to_dyn_string (discriminator + 1,
                                                (dyn_string_t) dm->result));
        }
       else
-       {
-         if (flag_verbose)
-           /* A missing digit correspond to one.  */
-           RETURN_IF_ERROR (result_add_char (dm, '1'));
-       }
+       return STATUS_ERROR;
       if (flag_verbose)
        RETURN_IF_ERROR (result_add_char (dm, ']'));
     }