diff options
author | Jason Merrill <jason@redhat.com> | 2022-04-27 11:13:24 -0400 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2022-04-29 17:24:27 -0400 |
commit | 4259c229b457361a9b5cdec157e058bf0c2c8b77 (patch) | |
tree | b5b991c4bb1f2021423c93d57b8dbed42fdb5b27 /gcc/gcov-io.cc | |
parent | 53e7252140c95afc859ade521a61ab4115d7fb11 (diff) | |
download | gcc-4259c229b457361a9b5cdec157e058bf0c2c8b77.zip gcc-4259c229b457361a9b5cdec157e058bf0c2c8b77.tar.gz gcc-4259c229b457361a9b5cdec157e058bf0c2c8b77.tar.bz2 |
c++: alias CTAD and member alias templates [PR104470]
In this testcase, we were trying to substitute into
variant<Foo<T>>::__accepted_type, but failed to look it up because
variant<Foo<T>> doesn't exist. In other cases we already rewrite such
things into a dependent reference; we need to do that for alias templates as
well.
This caused some testsuite regressions on alias uses outside of deduction
guides, so I've made all of this rewriting conditional on a new tf_dguide
tsubst flag.
PR c++/104470
gcc/cp/ChangeLog:
* cp-tree.h (enum tsubst_flags): Add tf_dguide.
* pt.cc (tsubst_aggr_type): Check it.
(tsubst_baselink, tsubst_copy): Check it.
(maybe_dependent_member_ref): Check it.
(instantiate_alias_template): Handle it.
(build_deduction_guide): Set it.
gcc/testsuite/ChangeLog:
* g++.dg/cpp2a/explicit11.C: Second example also ill-formed.
* g++.dg/cpp2a/class-deduction-alias12.C: New test.
Diffstat (limited to 'gcc/gcov-io.cc')
0 files changed, 0 insertions, 0 deletions