aboutsummaryrefslogtreecommitdiff
path: root/libgcc/libgcov-driver.c
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2020-07-29 22:06:41 -0400
committerPatrick Palka <ppalka@redhat.com>2020-07-29 22:06:41 -0400
commit71141b1bd537cc516e485c834c2d36abba3f4544 (patch)
tree3a2a2dc206c084c9574823d7fa1bcf9115b95129 /libgcc/libgcov-driver.c
parentf31dd9beb95f4beda1d2bd5c0526c42d0ce455c4 (diff)
downloadgcc-71141b1bd537cc516e485c834c2d36abba3f4544.zip
gcc-71141b1bd537cc516e485c834c2d36abba3f4544.tar.gz
gcc-71141b1bd537cc516e485c834c2d36abba3f4544.tar.bz2
c++: alias_ctad_tweaks and constrained dguide [PR95486]
In the below testcase, we're ICEing from alias_ctad_tweaks ultimately because the implied deduction guide for X's user-defined constructor already has constraints associated with it. We then carry over these constraints to 'fprime', the overlying deduction guide for the alias template Y, via tsubst_decl from alias_ctad_tweaks. Later in alias_ctad_tweaks we call get_constraints followed by set_constraints without doing remove_constraints in between, which triggers the !found assert in set_constraints. This patch fixes this issue by adding an intervening call to remove_constraints. gcc/cp/ChangeLog: PR c++/95486 * pt.c (alias_ctad_tweaks): Call remove_constraints before calling set_constraints. gcc/testsuite/ChangeLog: PR c++/95486 * g++.dg/cpp2a/class-deduction-alias3.C: New test.
Diffstat (limited to 'libgcc/libgcov-driver.c')
0 files changed, 0 insertions, 0 deletions