r278785 - in /trunk/gcc: cp/ChangeLog cp/constr...

jason@gcc.gnu.org jason@gcc.gnu.org
Wed Nov 27 22:05:00 GMT 2019


Author: jason
Date: Wed Nov 27 22:05:47 2019
New Revision: 278785

URL: https://gcc.gnu.org/viewcvs?rev=278785&root=gcc&view=rev
Log:
Fix constrained alias template transparency.

A constrained alias template can't be treated as equivalent to its
underlying template/type for much the same reason that an alias template
like void_t can't; we're relying on checking during substitution.

	* cxx-pretty-print.c (pp_cxx_unqualified_id): Handle alias
	template-id.
	* pt.c (complex_alias_template_p): True if constraints.
	(get_underlying_template, tsubst): Check alias constraints.
	(push_template_decl_real): Set alias constraints here.
	* parser.c (cp_parser_alias_declaration): Not here.
	* constraint.cc (get_constraints): Take const_tree.

Added:
    trunk/gcc/testsuite/g++.dg/cpp2a/concepts-alias3.C
    trunk/gcc/testsuite/g++.dg/cpp2a/concepts-alias4.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/constraint.cc
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/cxx-pretty-print.c
    trunk/gcc/cp/parser.c
    trunk/gcc/cp/pt.c
    trunk/gcc/testsuite/g++.dg/cpp2a/concepts-alias.C



More information about the Gcc-cvs mailing list