[Bug c++/109754] [ICE] internal compiler error: in coerce_template_parms, at cp/pt.cc:9183

2024-04-13 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

2023-05-05 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

2023-05-05 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

2023-05-05 Thread mpolacek at gcc dot gnu.org via Gcc-bugs
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

2023-05-05 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

2023-05-05 Thread mpolacek at gcc dot gnu.org via Gcc-bugs
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.