Commit f1a0345c by Jakub Jelinek Committed by Jakub Jelinek

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
parent 60080880
2001-03-23 Jakub Jelinek <jakub@redhat.com> 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. * decl.c (local_names): Define.
(push_local_name): New. (push_local_name): New.
(grok_reference_init): Return init if initializing static reference (grok_reference_init): Return init if initializing static reference
......
...@@ -1196,10 +1196,7 @@ write_discriminator (discriminator) ...@@ -1196,10 +1196,7 @@ write_discriminator (discriminator)
if (discriminator > 0) if (discriminator > 0)
{ {
write_char ('_'); write_char ('_');
/* The number is omitted for discriminator == 1. Beyond 1, the write_unsigned_number (discriminator - 1);
numbering starts at 0. */
if (discriminator > 1)
write_unsigned_number (discriminator - 2);
} }
} }
......
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> 2001-03-22 Jim Blandy <jimb@redhat.com>
* cp-demangle.c (string_list_delete): Use dyn_string_delete * cp-demangle.c (string_list_delete): Use dyn_string_delete
......
...@@ -3446,15 +3446,11 @@ demangle_discriminator (dm, suppress_first) ...@@ -3446,15 +3446,11 @@ demangle_discriminator (dm, suppress_first)
/* Write the discriminator. The mangled number is two /* Write the discriminator. The mangled number is two
less than the discriminator ordinal, counting from less than the discriminator ordinal, counting from
zero. */ zero. */
RETURN_IF_ERROR (int_to_dyn_string (discriminator + 2, RETURN_IF_ERROR (int_to_dyn_string (discriminator + 1,
(dyn_string_t) dm->result)); (dyn_string_t) dm->result));
} }
else else
{ return STATUS_ERROR;
if (flag_verbose)
/* A missing digit correspond to one. */
RETURN_IF_ERROR (result_add_char (dm, '1'));
}
if (flag_verbose) if (flag_verbose)
RETURN_IF_ERROR (result_add_char (dm, ']')); RETURN_IF_ERROR (result_add_char (dm, ']'));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment