c++: alias CTAD and aggregate deduction cand [PR98832]
authorPatrick Palka <ppalka@redhat.com>
Thu, 24 Jun 2021 17:11:44 +0000 (13:11 -0400)
committerPatrick Palka <ppalka@redhat.com>
Thu, 24 Jun 2021 17:11:44 +0000 (13:11 -0400)
commitc761be53f6b62e22ac5de18c4aaf88648f64f5b7
tree347c506d26541a427787e2c43d005fc4ca4facd4
parentc06493dc30afbf65b14d783c7cd53f20877ef577
c++: alias CTAD and aggregate deduction cand [PR98832]

During alias CTAD, we're accidentally ignoring the aggregate deduction
candidate for the underlying template because this guide is added
separately via maybe_aggr_guide (which doesn't yet handle alias
templates) instead of via deduction_guides_for (which does).  This patch
makes maybe_aggr_guide handle alias templates in a manner similar to
deduction_guides_for.

PR c++/98832

gcc/cp/ChangeLog:

* pt.c (maybe_aggr_guide): Handle alias templates appropriately.

gcc/testsuite/ChangeLog:

* g++.dg/cpp2a/class-deduction-alias9.C: New test.
gcc/cp/pt.c
gcc/testsuite/g++.dg/cpp2a/class-deduction-alias9.C [new file with mode: 0644]