diff options
-rw-r--r-- | libiberty/ChangeLog | 5 | ||||
-rw-r--r-- | libiberty/cp-demangle.c | 8 |
2 files changed, 7 insertions, 6 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index f6e537f..5780bcd 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -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 diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index b8255b3..8419eef 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -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, ']')); } |