diff options
| author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-23 22:12:55 +0000 |
|---|---|---|
| committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-23 22:12:55 +0000 |
| commit | 5a4fcef04aa3d69ba01e56c3f9825916c47482e8 (patch) | |
| tree | 92d0d68f87e318b21c083075c8eb1c6aa9404b27 | |
| parent | 8fe6278651ed80dee6564252692fda73457b11a7 (diff) | |
| download | ppe42-gcc-5a4fcef04aa3d69ba01e56c3f9825916c47482e8.tar.gz ppe42-gcc-5a4fcef04aa3d69ba01e56c3f9825916c47482e8.zip | |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40795 138bc75d-0d04-0410-961f-82ee72b054a4
| -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 2881da6ab5e..5f63a6785cf 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 a908640088e..e2641a74c6e 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 0e937d2cfb3..7a1e8268551 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 b8255b3a26c..8419eef3425 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, ']')); } |

