https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107457

            Bug ID: 107457
           Summary: ICE when template lambda alias used as default
                    template argument
           Product: gcc
           Version: 12.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: aandrejevas5 at gmail dot com
  Target Milestone: ---

The following code causes an ICE with GCC 12.2.0 until trunk, on
-std=c++{20,23}:

template<class T>
using lambda = decltype([]() {});

template<class R, class F = lambda<R>>
void test() {}

int main() {
        test<int>();
}


godbolt: https://godbolt.org/z/Mx1z77hTn


Error message:

PS> g++ -std=c++20 "main_ice.cpp" -o"bin\main_ice.exe"
main_ice.cpp: In substitution of 'template<class T> using lambda = decltype
(<lambda>) [with T = R]':
main_ice.cpp:4:36:   required from here
main_ice.cpp:2:25: internal compiler error: Segmentation fault
    2 | using lambda = decltype([]() {});
      |                         ^~~~~~~
libbacktrace could not find executable to open
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://github.com/msys2/MINGW-packages/issues> for instructions.
  • [Bug c++/107457] New: ICE when ... aandrejevas5 at gmail dot com via Gcc-bugs

Reply via email to