c++: constrained surrogate call functions [PR110535]
commit1e0f37df1b12cd91a6dbb523f5c722f9a961edaa
authorPatrick Palka <ppalka@redhat.com>
Tue, 18 Jul 2023 13:21:40 +0000 (18 09:21 -0400)
committerPatrick Palka <ppalka@redhat.com>
Tue, 18 Jul 2023 13:21:40 +0000 (18 09:21 -0400)
treec5d0e63652a0dafb392478045cddc418c6b83156
parent054e93b8757a2d619a528f7dd1b8580cce13c713
c++: constrained surrogate call functions [PR110535]

We weren't checking constraints on pointer/reference-to-function conversion
functions during overload resolution, which caused us to ICE on the first
testcase and reject the second testcase.

PR c++/110535

gcc/cp/ChangeLog:

* call.cc (add_conv_candidate): Check constraints.

gcc/testsuite/ChangeLog:

* g++.dg/cpp2a/concepts-surrogate1.C: New test.
* g++.dg/cpp2a/concepts-surrogate2.C: New test.
gcc/cp/call.cc
gcc/testsuite/g++.dg/cpp2a/concepts-surrogate1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp2a/concepts-surrogate2.C [new file with mode: 0644]