aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2001-03-23 23:12:55 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2001-03-23 23:12:55 +0100
commitf1a0345cf6f425df0b5b49f1a5de97cca2232c03 (patch)
tree92d0d68f87e318b21c083075c8eb1c6aa9404b27
parent6008088011584c779e326dc0e3dc3fb4a8c000a8 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/cp/mangle.c5
-rw-r--r--libiberty/ChangeLog5
-rw-r--r--libiberty/cp-demangle.c8
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, ']'));
}