aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/mangle.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/java/mangle.c')
-rw-r--r--gcc/java/mangle.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/gcc/java/mangle.c b/gcc/java/mangle.c
index 69a0898f8ad..2401501d9b8 100644
--- a/gcc/java/mangle.c
+++ b/gcc/java/mangle.c
@@ -749,27 +749,21 @@ set_type_package_list (tree type)
{
int i;
const char *type_string = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
- char *ptr;
+ const char *ptr;
int qualifications;
tree list = NULL_TREE, elt;
- for (ptr = (char *)type_string, qualifications = 0; *ptr; ptr++)
+ for (ptr = type_string, qualifications = 0; *ptr; ptr++)
if (*ptr == '.')
qualifications += 1;
- for (ptr = (char *)type_string, i = 0; i < qualifications; ptr++)
+ for (ptr = type_string, i = 0; i < qualifications; ptr++)
{
if (ptr [0] == '.')
{
- char c;
- tree identifier;
-
- /* Can't use an obstack, we're already using it to
- accumulate the mangling. */
- c = ptr [0];
- ptr [0] = '\0';
- identifier = get_identifier (type_string);
- ptr [0] = c;
+ tree const identifier
+ = get_identifier_with_length (type_string, ptr - type_string);
+
elt = build_tree_list (identifier, identifier);
TREE_CHAIN (elt) = list;
list = elt;