[Bug c++/109754] [ICE] internal compiler error: in coerce_template_parms, at cp/pt.cc:9183
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109754 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |14.0 --- Comment #6 from Andrew Pinski --- Fixed on the trunk for GCC 14 by the recent lambda template patches.
[Bug c++/109754] [ICE] internal compiler error: in coerce_template_parms, at cp/pt.cc:9183
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109754 --- Comment #5 from Andrew Pinski --- Reduced further: ``` template class> class __meval{}; template using __tuple_types_fn = decltype(_Fun(), [] {}); template struct __mexpand { template using __f = __tuple_types_fn<_Fun, _MetaFn>; }; auto t = __meval<__mexpand::template __f>(); ``` Removing the lambda inside the decltype removes the ICE.
[Bug c++/109754] [ICE] internal compiler error: in coerce_template_parms, at cp/pt.cc:9183
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109754 Andrew Pinski changed: What|Removed |Added Keywords||c++-lambda --- Comment #4 from Andrew Pinski --- I am getting a feeling this is another one of these lambda inside a decltype issues.
[Bug c++/109754] [ICE] internal compiler error: in coerce_template_parms, at cp/pt.cc:9183
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109754 --- Comment #3 from Marek Polacek --- cvise reduced it to void declval(); template concept __same_as = requires { declval; }; template _Tp __declval; template int __v; using __msuccess = int; template struct __i; template concept __ok = __same_as<_Arg, __msuccess>; template concept _Ok = (__ok<_Args> && ...); template class> using __meval = __i<_Ok<>>; template using __minvoke = __meval<_Fn::template __f>; template struct __mexpand; template using __mapply = __minvoke<__mexpand<_List>>; struct __msize; template using __call_result_t = decltype(0); template using __tuple_types_fn = decltype(__declval<_Fun>, [] {}); template struct __mexpand { template using __f = __tuple_types_fn<_Fun, _MetaFn>; }; template long tuple_size_v = __v<__mapply<__msize, _Tuple>>; template using tuple = __call_result_t<>; using T = tuple<>; static_assert(tuple_size_v< T >, ""); but that is probably invalid.
[Bug c++/109754] [ICE] internal compiler error: in coerce_template_parms, at cp/pt.cc:9183
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109754 --- Comment #2 from Andrew Pinski --- Reducing ...
[Bug c++/109754] [ICE] internal compiler error: in coerce_template_parms, at cp/pt.cc:9183
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109754 Marek Polacek changed: What|Removed |Added Last reconfirmed||2023-05-05 Ever confirmed|0 |1 CC||mpolacek at gcc dot gnu.org Status|UNCONFIRMED |NEW --- Comment #1 from Marek Polacek --- Confirmed.