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

nathan@gcc.gnu.org nathan@gcc.gnu.org
Wed Dec 4 16:11:00 GMT 2019


Author: nathan
Date: Wed Dec  4 16:11:01 2019
New Revision: 278969

URL: https://gcc.gnu.org/viewcvs?rev=278969&root=gcc&view=rev
Log:
	Class members by index.
	gcc/cp/
	* decl.c (duplicate_decls): Repropagate module origin & purview.
	* friend.c (add_friend): Potential code, so I don't forget it.
	* module.cc (depset): Delete DB_MERGEABLE_BIT.
	(find_enum_member): New.
	(trees_out::decl_value): Separate different mergeable matching
	cases.  Add new ones.
	(trees_out::decl_node): Stream class members by index.  Adjust
	identifier streaming.
	(trees_in::decl_node): Deal with conv_op_identifier.  Use
	find_enum_member.
	(trees_out::get_merge_kind): Add DECL parm, deal with via_ctx and
	local_friends.
	(trees_out::key_mergeable): Swap parms, deal with new kinds.
	(trees_in::key_mergeable): Deal with new kinds.
	(trees_{in,out}::{read,write}_class_def): Don't stream member
	definitions.
	(trees_out::mark_class_def): Don't mark members.
	(depset::hash::make_dependency): Don't mark as mergeable.
	(cluster_cmp): Compare by stripped UID.
	(get_{instantiating,originating}_module_decl): Deal with fields,
	usings and local friends.
	* name-lookup.c (enum merge_match): New.
	(check_mergeable_decl): Add match kind parm.
	(match_mergeable_decl): Rename to ...
	(mergeable_namespace_entity): ... here.  Deal with namespace scope
	entities.
	(mergeable_class_member): New.
	(make_namespace_finish): Adjust.
	* name-lookup.h (match_mergeable_decl): Rename to ...
	(mergeable_namespace_entity): ... here.
	(mergeable_class_member): Declare.
	gcc/testsuite/
	* g++.dg/modules/friend-1_a.C: Adjust scans.
	* g++.dg/modules/indirect-[1234]_[bc].C: Likewise.
	* g++.dg/modules/inst-3_a.C: Likewise.
	* g++.dg/modules/tpl-friend-[12]_a.C: Likewise.
	* g++.dg/modules/tpl-spec-[45]_a.C: Likewise.
	* g++.dg/modules/vmort-2_a.C: Likewise.
	* g++.dg/modules/internal-1.C: Add xfailed dg-bogus
	* g++.dg/modules/thunk-1_a.C: Avoid implicit member problem.

Modified:
    branches/c++-modules/ChangeLog.modules
    branches/c++-modules/gcc/cp/decl.c
    branches/c++-modules/gcc/cp/friend.c
    branches/c++-modules/gcc/cp/module.cc
    branches/c++-modules/gcc/cp/name-lookup.c
    branches/c++-modules/gcc/cp/name-lookup.h
    branches/c++-modules/gcc/testsuite/g++.dg/modules/friend-1_a.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/indirect-1_c.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/indirect-2_b.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/indirect-2_c.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/indirect-3_b.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/indirect-3_c.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/indirect-4_b.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/inst-3_a.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/internal-1.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/thunk-1_a.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/tpl-friend-1_a.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/tpl-spec-4_a.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/tpl-spec-5_a.C
    branches/c++-modules/gcc/testsuite/g++.dg/modules/vmort-2_a.C



More information about the Gcc-cvs mailing list