https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122875
--- Comment #6 from Marek Polacek <mpolacek at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #5) > (In reply to eczbek.void from comment #1) > > This might also be related: https://godbolt.org/z/xxsrz1ozY > > > > ``` > > template<int> > > constexpr bool x = true; > > > > template<int> > > concept test = [:substitute(^^x, {}):]; > > ``` > > > > ``` > > <source>:7:37: internal compiler error: in cp_parser_splice_expression, at > > cp/parser.cc:6166 > > This still happens on the trunk. I don't see this; I get: 122875.C:5:18: error: there are no arguments to ‘substitute’ that depend on a template parameter, so a declaration of ‘substitute’ must be available [-fpermissive] 5 | concept test = [:substitute(^^x, {}):]; But #c3 ICEs with: 122875-2.C:14:35: internal compiler error: tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_base, at cp/search.cc:265 which seems like a dup of bug 123613. We'll see.
