r277902 - in /trunk/gcc: cp/ChangeLog cp/class....

jason@gcc.gnu.org jason@gcc.gnu.org
Thu Nov 7 00:50:00 GMT 2019


Author: jason
Date: Thu Nov  7 00:50:19 2019
New Revision: 277902

URL: https://gcc.gnu.org/viewcvs?rev=277902&root=gcc&view=rev
Log:
	Implement D1907R1 "structural type".

ISO C++ paper D1907R1 proposes "structural type" as an alternative to the
current notion of "strong structural equality", which has various problems.
I'm implementing it to give people a chance to try it.

The build_base_field changes are to make it easier for structural_type_p to
see whether a base is private or protected.

	* tree.c (structural_type_p): New.
	* pt.c (invalid_nontype_parm_type_p): Use it.
	* class.c (build_base_field_1): Take binfo.  Copy TREE_PRIVATE.
	(build_base_field): Pass binfo.

Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/class.c
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/pt.c
    trunk/gcc/cp/tree.c
    trunk/gcc/testsuite/g++.dg/cpp2a/udlit-class-nttp-neg2.C



More information about the Gcc-cvs mailing list