Hi Jason.
As promised, I am moving most everything out of
cxx_post_compilation_parsing_cleanups() which is the hook that will be
called after the compilation proper has run
(symtab->finalize_compilation_unit()).
Apart from the Java hidden alias support which I just asked you about,
and the VTV stuff which will remain in the aforementioned hook, the only
remaining bits are:
input_location = locus_at_end_of_parsing;
#ifdef ENABLE_CHECKING
validate_conversion_obstack ();
#endif /* ENABLE_CHECKING */
I am keeping the input_location bit because the final VTV stuff has some
error() calls which presumably will need a location.
And I am keeping validate_conversion_obstack() because I *think* the VTV
stuff will create calls? If not, let me know and I can move this bit too.
In any case, things are pretty deserted in
cxx_post_compilation_parsing_cleanups(), which should make everybody
happy :-).
I am committing the following to the branch. Let me know if you have
any suggestions.
Thanks.
Aldy
commit 0cf41add70fad5defc4ff07b76f95e3aaadc1b05
Author: Aldy Hernandez <al...@redhat.com>
Date: Thu Dec 18 11:47:19 2014 -0800
* cp/decl2.c (cxx_post_compilation_parsing_cleanups): Move some
final checks...
(c_parse_final_cleanups): ...here.
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index f9d1028..6441ab2 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -4723,6 +4723,21 @@ c_parse_final_cleanups (void)
pending_statics->length (),
EMIT_DEBUG_EARLY);
}
+
+ perform_deferred_noexcept_checks ();
+
+ finish_repo ();
+
+ /* The entire file is now complete. If requested, dump everything
+ to a file. */
+ dump_tu ();
+
+ if (flag_detailed_statistics)
+ {
+ dump_tree_statistics ();
+ dump_time_statistics ();
+ }
+
timevar_stop (TV_PHASE_DBGINFO);
timevar_start (TV_PHASE_PARSING);
}
@@ -4746,8 +4761,6 @@ cxx_post_compilation_parsing_cleanups (void)
vtv_generate_init_routine ();
}
- perform_deferred_noexcept_checks ();
-
/* Generate hidden aliases for Java. */
if (java_hidden_aliases)
{
@@ -4755,17 +4768,6 @@ cxx_post_compilation_parsing_cleanups (void)
delete java_hidden_aliases;
}
- finish_repo ();
-
- /* The entire file is now complete. If requested, dump everything
- to a file. */
- dump_tu ();
-
- if (flag_detailed_statistics)
- {
- dump_tree_statistics ();
- dump_time_statistics ();
- }
input_location = locus_at_end_of_parsing;
#ifdef ENABLE_CHECKING