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.

Reply via email to