https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94719
Bug ID: 94719
Summary: ICE with constrained inherited constructor template
from class template since r10-7859
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ppalka at gcc dot gnu.org
Target Milestone: ---
$ cat testcase.C
template<typename T>
struct bar
{
template<int N = 5>
requires (N == 5)
bar() { }
};
template<typename T>
struct foo : bar<T>
{
using foo::bar::bar;
};
void baz()
{
foo<int>{};
}
$ g++ -std=c++2a -fconcepts
testcase.C: In instantiation of ‘foo<int>::foo() [with int N = 5][inherited
from bar<int>]’:
testcase.C:17:12: required from here
testcase.C:5:17: internal compiler error: unexpected expression ‘N’ of kind
template_parm_index
5 | requires (N == 5)
| ~~~^~~~~
This is caused by the fix for PR94549.