]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++: Fix ICE with concept used as function [PR116477]
authorEgas Ribeiro <egas.g.ribeiro@tecnico.ulisboa.pt>
Tue, 7 Oct 2025 21:48:56 +0000 (22:48 +0100)
committerJason Merrill <jason@redhat.com>
Thu, 9 Oct 2025 20:27:11 +0000 (21:27 +0100)
commit4ee06690a47cd39b6003fc6589d4f292aeb67033
treedf13a75c94f84d73cf1fc8c672d23913b81b352f
parent078208cf15bb373dc7931d6b373689cdff70cdc5
c++: Fix ICE with concept used as function [PR116477]

As suggested by Patrick Palka in the bug report, the diagnostic check
for concept_check_p(fn) was being done too late in finish_call_expr(),
which led to an early return inside if (processing_template_decl), which
meant that the error wouldn't be triggered when we are in a type
dependence early exit. This fix makes sure that this error is handled in
the semantic analysis phase, and avoids the failed assertion later in
tsubst_expr().

PR c++/116477

gcc/cp/ChangeLog:

* semantics.cc (finish_call_expr): Move concept_check_p diagnostic
before processing_template_decl check to catch errors earlier.

gcc/testsuite/ChangeLog:

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

Signed-off-by: Egas Ribeiro <egas.g.ribeiro@tecnico.ulisboa.pt>
gcc/cp/semantics.cc
gcc/testsuite/g++.dg/cpp2a/concepts-pr116477.C [new file with mode: 0644]