diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-27 12:45:13 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-04-27 12:45:13 +0000 |
commit | 268b9e9e95f56a59a8817b28ad59b53f40fc668d (patch) | |
tree | 5e9529982daf11d5b3ab800d4c58bc3fbee99d28 /gcc/toplev.c | |
parent | e1910362719612f58bd1ea5050fa7a5175036abc (diff) | |
download | gcc-268b9e9e95f56a59a8817b28ad59b53f40fc668d.tar.gz |
2009-04-27 Basile Starynkevitch <basile@starynkevitch.net>
MERGED WITH TRUNK r146824::
* gcc/basilys.h: all GTY goes before the identifiers.
* gcc/basilys.c: removed errors.h include.
* gcc/run-basilys.h: ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@146839 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r-- | gcc/toplev.c | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index 59fadc2eb16..2e35e2fb1ec 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -95,6 +95,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-pass.h" #include "gimple.h" #include "tree-ssa-alias.h" +#include "plugin.h" #if defined (DWARF2_UNWIND_INFO) || defined (DWARF2_DEBUGGING_INFO) #include "dwarf2out.h" @@ -1008,11 +1009,6 @@ compile_file (void) varpool_assemble_pending_decls (); finish_aliases_2 (); - /* This must occur after the loop to output deferred functions. - Else the coverage initializer would not be emitted if all the - functions in this compilation unit were deferred. */ - coverage_finish (); - /* Likewise for mudflap static object registrations. */ if (flag_mudflap) mudflap_finish_file (); @@ -1178,6 +1174,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 @@ -1521,6 +1519,15 @@ default_tree_printer (pretty_printer * pp, text_info *text, const char *spec, switch (*spec) { + case 'E': + t = va_arg (*text->args_ptr, tree); + if (TREE_CODE (t) == IDENTIFIER_NODE) + { + pp_string (pp, IDENTIFIER_POINTER (t)); + return true; + } + break; + case 'D': t = va_arg (*text->args_ptr, tree); if (DECL_DEBUG_EXPR_IS_FROM (t) && DECL_DEBUG_EXPR (t)) @@ -2276,6 +2283,9 @@ do_compile (void) compile_file (); finalize (); + + /* Invoke registered plugin callbacks. */ + invoke_plugin_callbacks (PLUGIN_FINISH_UNIT, NULL); } /* Stop timing and print the times. */ @@ -2290,16 +2300,18 @@ do_compile (void) It is not safe to call this function more than once. */ int -toplev_main (unsigned int argc, const char **argv) +toplev_main (int argc, char **argv) { - save_argv = argv; + expandargv (&argc, &argv); + + save_argv = (const char **) argv; /* Initialization of GCC's environment, and diagnostics. */ general_init (argv[0]); /* Parse the options and do minimal processing; basically just enough to default flags appropriately. */ - decode_options (argc, argv); + decode_options (argc, (const char **) argv); init_local_tick (); @@ -2334,6 +2346,10 @@ toplev_main (unsigned int argc, const char **argv) if (warningcount || errorcount) print_ignored_options (); + /* Invoke registered plugin callbacks if any. */ + invoke_plugin_callbacks (PLUGIN_FINISH, NULL); + + finalize_plugins (); if (errorcount || sorrycount) return (FATAL_EXIT_CODE); |