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