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