diff options
author | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-02 12:26:00 +0000 |
---|---|---|
committer | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-02 12:26:00 +0000 |
commit | 19dcb05b64dac1b3f6b41b66fbf6335bfcaa4926 (patch) | |
tree | 9d31c155fc6533acc82d406f6aeb96eb7ad549f9 /gcc/java/jvgenmain.c | |
parent | eaf45f93c4ee922dbe317b8b9d7e180641fc86a8 (diff) | |
download | gcc-19dcb05b64dac1b3f6b41b66fbf6335bfcaa4926.tar.gz |
* gcc.c (set_collect_gcc_options): New function, split out from
main.
Ignore elided switches.
(do_spec_1): Invoke before executing command.
(set_input): Export.
Move declaration ...
* gcc.h (set_input): ... here.
* config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
file.
java:
* jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
ASM_FINAL_SPEC.
(lang_specific_pre_link): Use set_input to set input_filename.
Append `main' here.
* jvgenmain.c (usage): Append literal `main' to CLASSNAME.
(main): Fix definition.
Strip `main' from classname.
Fixes PR java/227.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44572 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/jvgenmain.c')
-rw-r--r-- | gcc/java/jvgenmain.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/java/jvgenmain.c b/gcc/java/jvgenmain.c index ab43ddda3f9..9a425715066 100644 --- a/gcc/java/jvgenmain.c +++ b/gcc/java/jvgenmain.c @@ -61,14 +61,14 @@ static void usage (const char *) ATTRIBUTE_NORETURN; static void usage (const char *name) { - fprintf (stderr, "Usage: %s [OPTIONS]... CLASSNAME [OUTFILE]\n", name); + fprintf (stderr, "Usage: %s [OPTIONS]... CLASSNAMEmain [OUTFILE]\n", name); exit (1); } int -main (int argc, const char **argv) +main (int argc, char **argv) { - const char *classname; + char *classname, *p; FILE *stream; const char *mangled_classname; int i, last_arg; @@ -92,6 +92,13 @@ main (int argc, const char **argv) classname = argv[i]; + /* gcj always appends `main' to classname. We need to strip this here. */ + p = strrchr (classname, 'm'); + if (p == NULL || p == classname || strcmp (p, "main") != 0) + usage (argv[0]); + else + *p = '\0'; + gcc_obstack_init (mangle_obstack); mangled_classname = do_mangle_classname (classname); |