diff options
author | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-08 21:12:26 +0000 |
---|---|---|
committer | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-08 21:12:26 +0000 |
commit | 03bde6017ce5581fcb73761fa8c5210ee12631aa (patch) | |
tree | 6dbda9aef13aa04d7c15b46cb0bda16747482b8d /gcc/java/lang.c | |
parent | 0d409008b0302a0de479fbe32900561a70bd37d5 (diff) | |
download | gcc-03bde6017ce5581fcb73761fa8c5210ee12631aa.tar.gz |
* c-common.h (c_common_init, c_common_post_options): Update.
* c-objc-common.c (c_objc_common_init): Update for new prototype.
* c-opts.c (saved_lineno): New.
(c_common_post_options, c_common_init): Update prototypes,
move call to cpp_read_main_file from latter to former.
* c-tree.h (c_ojbc_common_init): Update.
* langhooks-def.h (lhd_post_options): New.
(LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
* langhooks.c (lhd_post_options): New.
* langhooks.h (struct lang_hooks): Update post_options and init hooks.
* toplev.c (no_backend): New.
(process_options): Call post_options hook and set main_input_filename
and input_filename here.
(lang_dependent_init, do_compile): post_options hook moved to
process_options.
* objc/objc-act.c (objc_init): Update prototype.
* objc/objc-act.h (objc_init): Update prototype.
ada:
* misc.c (gnat_init): Update for new prototype.
cp:
* cp-tree.h (cxx_init): Update prototype.
* lex.c (cxx_init): Similarly.
f:
* com.c (ffe_init): Update prototype; move code to ffe_post_options.
(ffe_post_options): New.
java:
* lang.c (java_init): Update prototype, move code to java_post_options.
(java_post_options): Similarly.
treelang:
* tree1.c (in_fname): Fix type.
(treelang_init): Update prototype and use of in_fname.
* treelang.h (in_fname): Fix type.
* treetree.c (tree_code_if_start, tree_code_if_else,
tree_code_if_end, tree_code_create_function_prototype,
tree_code_create_function_initial, tree_code_create_funciton_wrapup,
tree_code_create_variable, tree_code_output_expression_statement)
: Fix prototypes and use of filenames.
* treetree.h: Similarly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64001 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/java/lang.c')
-rw-r--r-- | gcc/java/lang.c | 136 |
1 files changed, 69 insertions, 67 deletions
diff --git a/gcc/java/lang.c b/gcc/java/lang.c index daa2e4957b8..41441bf128f 100644 --- a/gcc/java/lang.c +++ b/gcc/java/lang.c @@ -53,10 +53,10 @@ struct string_option const int on_value; }; -static const char *java_init (const char *); +static bool java_init (void); static void java_finish (void); static void java_init_options (void); -static bool java_post_options (void); +static bool java_post_options (const char **); static int java_decode_option (int, char **); static void put_decl_string (const char *, int); @@ -508,8 +508,8 @@ java_decode_option (int argc __attribute__ ((__unused__)), char **argv) /* Global open file. */ FILE *finput; -static const char * -java_init (const char *filename) +static bool +java_init (void) { #if 0 extern int flag_minimal_debug; @@ -526,67 +526,6 @@ java_init (const char *filename) && force_align_functions_log < 1) force_align_functions_log = 1; - /* Open input file. */ - - if (filename == 0 || !strcmp (filename, "-")) - { - finput = stdin; - filename = "stdin"; - - if (dependency_tracking) - error ("can't do dependency tracking with input from stdin"); - } - else - { - if (dependency_tracking) - { - char *dot; - - /* If the target is set and the output filename is set, then - there's no processing to do here. Otherwise we must - compute one or the other. */ - if (! ((dependency_tracking & DEPEND_TARGET_SET) - && (dependency_tracking & DEPEND_FILE_ALREADY_SET))) - { - dot = strrchr (filename, '.'); - if (dot == NULL) - error ("couldn't determine target name for dependency tracking"); - else - { - char *buf = xmalloc (dot - filename + - 3 + sizeof (TARGET_OBJECT_SUFFIX)); - strncpy (buf, filename, dot - filename); - - /* If emitting class files, we might have multiple - targets. The class generation code takes care of - registering them. Otherwise we compute the - target name here. */ - if ((dependency_tracking & DEPEND_TARGET_SET)) - ; /* Nothing. */ - else if (flag_emit_class_files) - jcf_dependency_set_target (NULL); - else - { - strcpy (buf + (dot - filename), TARGET_OBJECT_SUFFIX); - jcf_dependency_set_target (buf); - } - - if ((dependency_tracking & DEPEND_FILE_ALREADY_SET)) - ; /* Nothing. */ - else if ((dependency_tracking & DEPEND_SET_FILE)) - { - strcpy (buf + (dot - filename), ".d"); - jcf_dependency_set_dep_file (buf); - } - else - jcf_dependency_set_dep_file ("-"); - - free (buf); - } - } - } - } - jcf_path_init (); jcf_path_seal (version_flag); @@ -594,7 +533,7 @@ java_init (const char *filename) using_eh_for_cleanups (); - return filename; + return true; } static void @@ -813,8 +752,10 @@ java_can_use_bit_fields_p (void) /* Post-switch processing. */ static bool -java_post_options (void) +java_post_options (const char **pfilename) { + const char *filename = *pfilename; + /* Use tree inlining if possible. Function instrumentation is only done in the RTL level, so we disable tree inlining. */ if (! flag_instrument_function_entry_exit) @@ -828,6 +769,67 @@ java_post_options (void) } } + /* Open input file. */ + + if (filename == 0 || !strcmp (filename, "-")) + { + finput = stdin; + filename = "stdin"; + + if (dependency_tracking) + error ("can't do dependency tracking with input from stdin"); + } + else + { + if (dependency_tracking) + { + char *dot; + + /* If the target is set and the output filename is set, then + there's no processing to do here. Otherwise we must + compute one or the other. */ + if (! ((dependency_tracking & DEPEND_TARGET_SET) + && (dependency_tracking & DEPEND_FILE_ALREADY_SET))) + { + dot = strrchr (filename, '.'); + if (dot == NULL) + error ("couldn't determine target name for dependency tracking"); + else + { + char *buf = xmalloc (dot - filename + + 3 + sizeof (TARGET_OBJECT_SUFFIX)); + strncpy (buf, filename, dot - filename); + + /* If emitting class files, we might have multiple + targets. The class generation code takes care of + registering them. Otherwise we compute the + target name here. */ + if ((dependency_tracking & DEPEND_TARGET_SET)) + ; /* Nothing. */ + else if (flag_emit_class_files) + jcf_dependency_set_target (NULL); + else + { + strcpy (buf + (dot - filename), TARGET_OBJECT_SUFFIX); + jcf_dependency_set_target (buf); + } + + if ((dependency_tracking & DEPEND_FILE_ALREADY_SET)) + ; /* Nothing. */ + else if ((dependency_tracking & DEPEND_SET_FILE)) + { + strcpy (buf + (dot - filename), ".d"); + jcf_dependency_set_dep_file (buf); + } + else + jcf_dependency_set_dep_file ("-"); + + free (buf); + } + } + } + } + /* Initialize the compiler back end. */ return false; } |