aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/jvgenmain.c
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@cygnus.com>2001-02-09 00:32:11 +0000
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>2001-02-08 16:32:11 -0800
commit1b43b6be4a838d462816c916c0737132eadeca6a (patch)
tree63a7dd46d1f2e24a7f154e95b10330dd27796201 /gcc/java/jvgenmain.c
parent8da6d80e8706bcdffc8b07c5a57ad820e9651f2a (diff)
downloadgcc-1b43b6be4a838d462816c916c0737132eadeca6a.zip
gcc-1b43b6be4a838d462816c916c0737132eadeca6a.tar.gz
gcc-1b43b6be4a838d462816c916c0737132eadeca6a.tar.bz2
Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
2001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com> * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o (JVGENMAIN_OBJS): Likewise. * java-tree.h (append_gpp_mangled_name): New prototype. * jcf-parse.c (ggc_mark_jcf): Argument now `void *.' Removed cast calling `gcc_add_root.' * jvgenmain.c (mangle_obstack): New global, initialized. (main): Use it. (do_mangle_class): Constify local `ptr.' Removed macro `MANGLE_NAME.' Removed cast in `for.' Call append_gpp_mangle_name and update `count' if necessary. Use `mangle_obstack.' * mangle.c (append_unicode_mangled_name): Removed. (append_gpp_mangled_name): Likewise. (unicode_mangling_length): Likewise. (mangle_member_name): Return type set to `void.' (mangle_field_decl): Don't append `U' in escaped names. (mangle_method_decl): Likewise. (mangle_member_name): Just use `append_gpp_mangled_name.' * mangle_name.c: New file. (http://gcc.gnu.org/ml/gcc-patches/2001-02/msg00492.html) From-SVN: r39552
Diffstat (limited to 'gcc/java/jvgenmain.c')
-rw-r--r--gcc/java/jvgenmain.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/gcc/java/jvgenmain.c b/gcc/java/jvgenmain.c
index 8f59192..414ccde 100644
--- a/gcc/java/jvgenmain.c
+++ b/gcc/java/jvgenmain.c
@@ -34,7 +34,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
static char * do_mangle_classname PARAMS ((const char *string));
-struct obstack name_obstack;
+struct obstack name_obstack;
+struct obstack *mangle_obstack = &name_obstack;
void
gcc_obstack_init (obstack)
@@ -92,7 +93,7 @@ main (int argc, const char **argv)
classname = argv[i];
- gcc_obstack_init (&name_obstack);
+ gcc_obstack_init (mangle_obstack);
mangled_classname = do_mangle_classname (classname);
if (i < argc - 1 && strcmp (argv[i + 1], "-") != 0)
@@ -150,30 +151,22 @@ static char *
do_mangle_classname (string)
const char *string;
{
- char *ptr;
+ const char *ptr;
int count = 0;
-#define MANGLE_NAME() \
- { \
- char buffer [128]; \
- sprintf (buffer, "%d", count); \
- obstack_grow (&name_obstack, buffer, strlen (buffer)); \
- obstack_grow (&name_obstack, & ptr [-count], count); \
- count = 0; \
- }
-
obstack_grow (&name_obstack, "_ZN", 3);
- for (ptr = (char *)string; *ptr; ptr++ )
+ for (ptr = string; *ptr; ptr++ )
{
if (ptr[0] == '.')
{
- MANGLE_NAME ();
+ append_gpp_mangled_name (&ptr [-count], count);
+ count = 0;
}
else
count++;
}
- MANGLE_NAME ();
- obstack_grow0 (&name_obstack, "6class$E", 8);
- return obstack_finish (&name_obstack);
+ append_gpp_mangled_name (&ptr [-count], count);
+ obstack_grow (mangle_obstack, "6class$E", 8);
+ return obstack_finish (mangle_obstack);
}