c++: ICE with failed __is_constructible constraint [PR100474]
authorPatrick Palka <ppalka@redhat.com>
Wed, 30 Mar 2022 14:13:11 +0000 (10:13 -0400)
committerPatrick Palka <ppalka@redhat.com>
Wed, 30 Mar 2022 14:13:11 +0000 (10:13 -0400)
commit3aaf9bf77047aecc23072fe3db7f13ecff72a7cf
treee15c7dfec64ccf61c1d69ad1b49ee016bebe37f6
parent6a777ceb0e975f0efc823d2d82e676346f068151
c++: ICE with failed __is_constructible constraint [PR100474]

Here we're crashing when diagnosing an unsatisfied __is_constructible
constraint because diagnose_trait_expr doesn't recognize this trait
(along with a bunch of other traits).  Fix this by adding handling for
all remaining traits and removing the default case so that when adding a
new trait we'll get a warning that diagnose_trait_expr needs to handle it.

PR c++/100474

gcc/cp/ChangeLog:

* constraint.cc (diagnose_trait_expr): Handle all remaining
traits appropriately.  Remove default case.

gcc/testsuite/ChangeLog:

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