summaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorespindola <espindola@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-16 13:12:20 +0000
committerespindola <espindola@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-16 13:12:20 +0000
commite16288b4a39e53823d38ca7b17f97be364101d55 (patch)
tree4c2c486bde5f48e09fd4e0030c18e8c61a2c68a1 /gcc/toplev.c
parent4991732ef6df19d9c2699be3580e9f139e6e6775 (diff)
downloadgcc-e16288b4a39e53823d38ca7b17f97be364101d55.tar.gz
2009-04-16 Rafael Avila de Espindola <espindola@google.com>
* gcc-plugin.h (plugin_event): Add PLUGIN_INFO. (plugin_info): New. * opts.c (common_handle_option): Don't call print_version. * plugin.c (plugin_name_args): Add version. (register_plugin_info): New. (register_callback): Handle PLUGIN_INFO. (try_init_one_plugin): New. (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args if failed to init. (finalize_one_plugin): New. (finalize_plugins): New. (print_one_plugin): New. (print_plugins_versions): New. * plugin.h (print_plugins_versions): New. (finalize_plugins): New. * toplev.c (compile_file): Don't call initialize_plugins. (print_version): Call print_plugins_versions. (toplev_main): Call initialize_plugins. Print version if needed. Call finalize_plugins. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146187 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 675cdf249cf..725c3762767 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -969,7 +969,6 @@ compile_file (void)
init_final (main_input_filename);
coverage_init (aux_base_name);
statistics_init ();
- initialize_plugins ();
timevar_push (TV_PARSE);
@@ -1164,6 +1163,8 @@ print_version (FILE *file, const char *indent)
file == stderr ? _(fmt4) : fmt4,
indent, *indent != 0 ? " " : "",
PARAM_VALUE (GGC_MIN_EXPAND), PARAM_VALUE (GGC_MIN_HEAPSIZE));
+
+ print_plugins_versions (file, indent);
}
#ifdef ASM_COMMENT_START
@@ -2273,6 +2274,11 @@ toplev_main (unsigned int argc, const char **argv)
init_local_tick ();
+ initialize_plugins ();
+
+ if (version_flag)
+ print_version (stderr, "");
+
/* Exit early if we can (e.g. -help). */
if (!exit_after_options)
do_compile ();
@@ -2283,6 +2289,7 @@ toplev_main (unsigned int argc, const char **argv)
/* Invoke registered plugin callbacks if any. */
invoke_plugin_callbacks (PLUGIN_FINISH, NULL);
+ finalize_plugins ();
if (errorcount || sorrycount)
return (FATAL_EXIT_CODE);