diff options
author | Alexandre Petit-Bianco <apbianco@cygnus.com> | 2001-02-09 00:32:11 +0000 |
---|---|---|
committer | Alexandre Petit-Bianco <apbianco@gcc.gnu.org> | 2001-02-08 16:32:11 -0800 |
commit | 1b43b6be4a838d462816c916c0737132eadeca6a (patch) | |
tree | 63a7dd46d1f2e24a7f154e95b10330dd27796201 /gcc/java/jvgenmain.c | |
parent | 8da6d80e8706bcdffc8b07c5a57ad820e9651f2a (diff) | |
download | gcc-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.c | 27 |
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); } |