it's an ICE on illegal-code. It doesn't ICE with GCC 8 in bionic. Unlikely to be fixed in bionic, and also fixed in focal and newer versions.
$ g++-8 -c -std=c++17 minimized.cc minimized.cc: In function ‘void a()’: minimized.cc:46:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] y<am>(0, 0, "", an, x::t, {}); ^ minimized.cc: In instantiation of ‘y<ah>::y(int, char, s, y<ah>::aj, x, int) [with ah = {double}; y<ah>::aj = I]::<lambda(auto:1)> [with auto:1 = b<0>]’: minimized.cc:31:6: required from ‘void u(m<w, af ...>, v) [with v = y<ah>::y(int, char, s, y<ah>::aj, x, int) [with ah = {double}; y<ah>::aj = I]::<lambda(auto:1)>; w = long int; w ...af = {0}]’ minimized.cc:37:6: required from ‘y<ah>::y(int, char, s, y<ah>::aj, x, int) [with ah = {double}; y<ah>::aj = I]’ minimized.cc:46:31: required from here minimized.cc:39:15: error: ‘<anonymous>’ has incomplete type int{[&](J<ak>) {}}; ^~~~~ minimized.cc:29:27: note: declaration of ‘class J<double>’ template <typename> class J; ^ minimized.cc:39:7: error: cannot convert ‘y<ah>::y(int, char, s, y<ah>::aj, x, int) [with ah = {double}; y<ah>::aj = I]::<lambda(auto:1)> [with auto:1 = b<0>]::<lambda(J<double>)>’ to ‘int’ in initialization int{[&](J<ak>) {}}; ^~~ ** Changed in: gcc-7 (Ubuntu) Status: New => Fix Released ** Changed in: gcc Status: New => Invalid -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1914109 Title: gcc-7: Internal compiler error: Error reporting routines re-entered To manage notifications about this bug go to: https://bugs.launchpad.net/gcc/+bug/1914109/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs