diff options
author | Jakub Jelinek <jakub@redhat.com> | 2001-03-23 23:12:55 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2001-03-23 23:12:55 +0100 |
commit | f1a0345cf6f425df0b5b49f1a5de97cca2232c03 (patch) | |
tree | 92d0d68f87e318b21c083075c8eb1c6aa9404b27 | |
parent | 6008088011584c779e326dc0e3dc3fb4a8c000a8 (diff) | |
download | gcc-f1a0345cf6f425df0b5b49f1a5de97cca2232c03.zip gcc-f1a0345cf6f425df0b5b49f1a5de97cca2232c03.tar.gz gcc-f1a0345cf6f425df0b5b49f1a5de97cca2232c03.tar.bz2 |
mangle.c (write_discriminator): Use `_0' for discriminator 1, not `_'.
* mangle.c (write_discriminator): Use `_0' for discriminator 1,
not `_'.
* cp-demangle.c (demangle_discriminator): `_0' is discriminator #1,
`_' not followed by a digit is invalid.
From-SVN: r40795
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/mangle.c | 5 | ||||
-rw-r--r-- | libiberty/ChangeLog | 5 | ||||
-rw-r--r-- | libiberty/cp-demangle.c | 8 |
4 files changed, 13 insertions, 10 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2881da6..5f63a67 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ 2001-03-23 Jakub Jelinek <jakub@redhat.com> + * mangle.c (write_discriminator): Use `_0' for discriminator 1, + not `_'. + +2001-03-23 Jakub Jelinek <jakub@redhat.com> + * decl.c (local_names): Define. (push_local_name): New. (grok_reference_init): Return init if initializing static reference diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index a908640..e2641a7 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -1196,10 +1196,7 @@ write_discriminator (discriminator) if (discriminator > 0) { write_char ('_'); - /* The number is omitted for discriminator == 1. Beyond 1, the - numbering starts at 0. */ - if (discriminator > 1) - write_unsigned_number (discriminator - 2); + write_unsigned_number (discriminator - 1); } } diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 0e937d2..7a1e826 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, ']')); } |