diff options
Diffstat (limited to 'gcc/java/mangle.c')
-rw-r--r-- | gcc/java/mangle.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/gcc/java/mangle.c b/gcc/java/mangle.c index 69a0898..2401501 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; |