https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99392
Bug ID: 99392 Summary: [10/11 regression] ICE for g++.dg/cpp1y/lambda-generic-variadic20.C Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: seurer at gcc dot gnu.org Target Milestone: --- Note: this only occurs on powerpc BE 32 bit. The test case g++.dg/cpp1y/lambda-generic-variadic20.C ICEs when compiled. This occurs in both trunk and gcc 10. In gcc 10 it occurs at the revision where the test case was added (to where it was backported it appeared). I had some issues narrowing it down in trunk but I think it has always failed there, too. g:183e9006cc0300257d6f74d573514ef86f78cb4e, r10-7885 make -k check-gcc RUNTESTFLAGS="--target_board=unix'{-m32,-m64}' dg.exp=g++.dg/cpp1y/lambda-generic-variadic20.C" FAIL: g++.dg/cpp1y/lambda-generic-variadic20.C -std=c++14 (internal compiler error) FAIL: g++.dg/cpp1y/lambda-generic-variadic20.C -std=c++14 (test for excess errors) FAIL: g++.dg/cpp1y/lambda-generic-variadic20.C -std=c++17 (internal compiler error) FAIL: g++.dg/cpp1y/lambda-generic-variadic20.C -std=c++17 (test for excess errors) FAIL: g++.dg/cpp1y/lambda-generic-variadic20.C -std=c++2a (internal compiler error) FAIL: g++.dg/cpp1y/lambda-generic-variadic20.C -std=c++2a (test for excess errors) The ICE with gcc 10 (at the revision where the test case was added as shown above): Executing on host: /home/seurer/gcc/git/build/gcc-10-test/gcc/testsuite/g++/../../xg++ -B/home/seurer/gcc/git/build/gcc-10-test/gcc/testsuite/g++/../../ /home/seurer/gcc/git/gcc-10-test/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic20.C -m32 -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -fdiagnostics-urls=never -nostdinc++ -I/home/seurer/gcc/git/build/gcc-10-test/powerpc64-unknown-linux-gnu/libstdc++-v3/include/powerpc64-unknown-linux-gnu -I/home/seurer/gcc/git/build/gcc-10-test/powerpc64-unknown-linux-gnu/libstdc++-v3/include -I/home/seurer/gcc/git/gcc-10-test/libstdc++-v3/libsupc++ -I/home/seurer/gcc/git/gcc-10-test/libstdc++-v3/include/backward -I/home/seurer/gcc/git/gcc-10-test/libstdc++-v3/testsuite/util -fmessage-length=0 -std=c++14 -pedantic-errors -Wno-long-long -S -o lambda-generic-variadic20.s (timeout = 300) spawn -ignore SIGHUP /home/seurer/gcc/git/build/gcc-10-test/gcc/testsuite/g++/../../xg++ -B/home/seurer/gcc/git/build/gcc-10-test/gcc/testsuite/g++/../../ /home/seurer/gcc/git/gcc-10-test/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic20.C -m32 -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fdiagnostics-color=never -fdiagnostics-urls=never -nostdinc++ -I/home/seurer/gcc/git/build/gcc-10-test/powerpc64-unknown-linux-gnu/libstdc++-v3/include/powerpc64-unknown-linux-gnu -I/home/seurer/gcc/git/build/gcc-10-test/powerpc64-unknown-linux-gnu/libstdc++-v3/include -I/home/seurer/gcc/git/gcc-10-test/libstdc++-v3/libsupc++ -I/home/seurer/gcc/git/gcc-10-test/libstdc++-v3/include/backward -I/home/seurer/gcc/git/gcc-10-test/libstdc++-v3/testsuite/util -fmessage-length=0 -std=c++14 -pedantic-errors -Wno-long-long -S -o lambda-generic-variadic20.s during RTL pass: expand /home/seurer/gcc/git/gcc-10-test/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic20.C: In static member function 'static decltype (((const fooV<{const char*, int, double, char, float, short int, unsigned int}>::<lambda(auto:1 ...)>*)0)->operator()<auto:1 ...>(static_cast<auto:1&&>(fooV::._anon_2::_FUN::<unnamed>) ...)) fooV<{const char*, int, double, char, float, short int, unsigned int}>::<lambda(auto:1 ...)>::_FUN(auto:1 ...) [with auto:1 = {fooV<{const char*, int, double, char, float, short int, unsigned int}>::<lambda(auto:1 ...)>, const char*, int, double, char, float, short int, unsigned int}]': /home/seurer/gcc/git/gcc-10-test/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic20.C:5:12: internal compiler error: in expand_expr_addr_expr_1, at expr.c:8075 0x1091e5eb expand_expr_addr_expr_1 /home/seurer/gcc/git/gcc-10-test/gcc/expr.c:8075 0x1090e683 expand_expr_addr_expr /home/seurer/gcc/git/gcc-10-test/gcc/expr.c:8188 0x1090e683 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/seurer/gcc/git/gcc-10-test/gcc/expr.c:11363 0x1072bf13 expand_normal /home/seurer/gcc/git/gcc-10-test/gcc/expr.h:288 0x1072bf13 precompute_register_parameters /home/seurer/gcc/git/gcc-10-test/gcc/calls.c:982 0x1073a483 expand_call(tree_node*, rtx_def*, int) /home/seurer/gcc/git/gcc-10-test/gcc/calls.c:4398 0x1090e5c7 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/seurer/gcc/git/gcc-10-test/gcc/expr.c:11135 0x1091ea43 store_expr(tree_node*, rtx_def*, int, bool, bool) /home/seurer/gcc/git/gcc-10-test/gcc/expr.c:5752 0x10921f87 expand_assignment(tree_node*, tree_node*, bool) /home/seurer/gcc/git/gcc-10-test/gcc/expr.c:5514 0x10754413 expand_call_stmt /home/seurer/gcc/git/gcc-10-test/gcc/cfgexpand.c:2701 0x10754413 expand_gimple_stmt_1 /home/seurer/gcc/git/gcc-10-test/gcc/cfgexpand.c:3682 0x10754413 expand_gimple_stmt /home/seurer/gcc/git/gcc-10-test/gcc/cfgexpand.c:3847 0x1075c73f expand_gimple_basic_block /home/seurer/gcc/git/gcc-10-test/gcc/cfgexpand.c:5887 0x1075ece7 execute /home/seurer/gcc/git/gcc-10-test/gcc/cfgexpand.c:6542 and with trunk (current revision when run): during RTL pass: expand /home/seurer/gcc/git/gcc-test/gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic20.C:5:12: internal compiler error: in expand_expr_addr_expr_1, at expr.c:8231 0x10a3d603 expand_expr_addr_expr_1 /home/seurer/gcc/git/gcc-test/gcc/expr.c:8231 0x10a2c83f expand_expr_addr_expr /home/seurer/gcc/git/gcc-test/gcc/expr.c:8344 0x10a2c83f expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/seurer/gcc/git/gcc-test/gcc/expr.c:11513 0x1085b883 expand_normal /home/seurer/gcc/git/gcc-test/gcc/expr.h:288 0x1085b883 precompute_register_parameters /home/seurer/gcc/git/gcc-test/gcc/calls.c:988 0x1085b883 expand_call(tree_node*, rtx_def*, int) /home/seurer/gcc/git/gcc-test/gcc/calls.c:4450 0x10a2d8af expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/seurer/gcc/git/gcc-test/gcc/expr.c:11285 0x10a3df6b store_expr(tree_node*, rtx_def*, int, bool, bool) /home/seurer/gcc/git/gcc-test/gcc/expr.c:5886 0x10a4069b expand_assignment(tree_node*, tree_node*, bool) /home/seurer/gcc/git/gcc-test/gcc/expr.c:5622 0x108768b3 expand_call_stmt /home/seurer/gcc/git/gcc-test/gcc/cfgexpand.c:2838 0x108768b3 expand_gimple_stmt_1 /home/seurer/gcc/git/gcc-test/gcc/cfgexpand.c:3844 0x1087834f expand_gimple_stmt /home/seurer/gcc/git/gcc-test/gcc/cfgexpand.c:4008 0x10880027 expand_gimple_basic_block /home/seurer/gcc/git/gcc-test/gcc/cfgexpand.c:6045 0x10882f23 execute /home/seurer/gcc/git/gcc-test/gcc/cfgexpand.c:6729