r260545 - in /branches/c++-modules: ChangeLog.m...

nathan@gcc.gnu.org nathan@gcc.gnu.org
Tue May 22 18:26:00 GMT 2018


Author: nathan
Date: Tue May 22 18:26:28 2018
New Revision: 260545

URL: https://gcc.gnu.org/viewcvs?rev=260545&root=gcc&view=rev
Log:
	Revert lazy definition patches.  Once one gets into template land
	it's all very brittle.  We end up with an unmaintained difference
	betweek 'we need the definition right now', and 'we need the
	definition at some point'.  I end up not being able to maintin the
	SCC dependency graph, and my head melted, looking a the rat hole
	that was appearing.  Until proved otherwise, there are other
	things to get on with.
	gcc/cp/
	* cp-tree.h (DECL_MODULE_LAZY_DEFN, HAS_DECL_MODULE_LAZY_DEFN_P)
	(MAYBE_DECL_MODULE_LAZY_DEFN): Delete.
	(struct lang_decl_min): Remove lazy_module_defn field.
	(lazy_load_defn): Delete decl.
	* constexpr.c (cxx_eval_call_expression): Remove lazy loading.
	* decl2.c (decl_defined_p, mark_used): Likewise.
	* module.c (depset::hash::add_definition): Remove DEFERRED parm.
	(trees_in::{pre,}seed): Delete.
	(trees_out::seeding{,_p}): Delete.
	(trees_out::unmark_trees): Seeding not needed.
	(trees_out::{begin,end}): Delete seeding variants.
	(trees_out::seed): Remove.
	(trees_out::insert): Return val, remove seeding.
	(trees_{in,out}::lang_decl_vals): Remove seeding.
	(has_definition): Return bool.
	(ct_seed_decl, ct_self_used): Delete.
	(module_state::{read,write}_cluster): Remove lazy handling.
	(module_state::{find_dependencies,write}): Adjust.
	(module_state::check_read): Adjust.
	(module_state::lazy_load, lazy_load_defn): Delete.
	* ptree.c (cxx_print_decl): Remove lazy defn index.

Modified:
    branches/c++-modules/ChangeLog.modules
    branches/c++-modules/gcc/cp/constexpr.c
    branches/c++-modules/gcc/cp/cp-tree.h
    branches/c++-modules/gcc/cp/decl2.c
    branches/c++-modules/gcc/cp/module.c
    branches/c++-modules/gcc/cp/ptree.c



More information about the Gcc-cvs mailing list