]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++: ICE during requires-expr partial subst [PR118060]
authorPatrick Palka <ppalka@redhat.com>
Thu, 9 Jan 2025 15:50:19 +0000 (10:50 -0500)
committerPatrick Palka <ppalka@redhat.com>
Thu, 9 Jan 2025 15:50:19 +0000 (10:50 -0500)
commitca79349c050c27ff466735ba78d2e2bbce56ffdc
tree1fd2c98d66fb3969a04e1a57e27eac0bdb15a68e
parent27d620d67697157f2269f3add4cb830540ac5795
c++: ICE during requires-expr partial subst [PR118060]

Here during partial substitution of the requires-expression (as part of
CTAD constraint rewriting) we segfault from the INDIRECT_REF case of
convert_to_void due *f(u) being type-dependent.  We should just defer
checking convert_to_void until satisfaction.

PR c++/118060

gcc/cp/ChangeLog:

* constraint.cc (tsubst_valid_expression_requirement): Don't
check convert_to_void during partial substitution.

gcc/testsuite/ChangeLog:

* g++.dg/cpp2a/concepts-requires40.C: New test.

Reviewed-by: Jason Merrill <jason@redhat.com>
gcc/cp/constraint.cc
gcc/testsuite/g++.dg/cpp2a/concepts-requires40.C [new file with mode: 0644]