https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97187
Bug ID: 97187 Summary: [11 Regression] ICE: tree check: expected tree_list, have error_mark in tsubst_copy_and_build, at cp/pt.c:19782 Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: error-recovery Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-11.0.0-alpha20200920 snapshot (g:363e7755f227656684c8e284307ceee451503ca4) ICEs when compiling the following testcase w/ -fno-exceptions: auto yp = [] { return 0; }; template <class DI> DI zl () { auto au = [] () -> DI { return *new auto (true ? yp : throw); }; return au (); } auto vd () { return zl <decltype (yp)> (); } % g++-11.0.0 -fno-exceptions -c gluna7vl.cc gluna7vl.cc: In instantiation of 'DI zl() [with DI = <lambda()>]': gluna7vl.cc:15:30: required from here gluna7vl.cc:7:57: error: exception handling disabled, use '-fexceptions' to enable 7 | auto au = [] () -> DI { return *new auto (true ? yp : throw); }; | ^~~~~ gluna7vl.cc:7:35: internal compiler error: tree check: expected tree_list, have error_mark in tsubst_copy_and_build, at cp/pt.c:19782 7 | auto au = [] () -> DI { return *new auto (true ? yp : throw); }; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x7d81f2 tree_check_failed(tree_node const*, char const*, int, char const*, ...) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/tree.c:9729 0x677fb0 tree_check(tree_node*, char const*, int, char const*, tree_code) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/tree.h:3299 0x677fb0 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:19782 0xa19bea tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:19399 0xa2386f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:18889 0xa24fe0 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:17971 0xa24f2e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:18281 0xa24f2e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:18281 0xa50ac7 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:17946 0xa50ac7 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:19231 0xa1a9fc tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:20546 0xa2386f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:18889 0xa2a3f1 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:17946 0xa2a3f1 tsubst_init /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:16332 0xa2801b tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:18110 0xa25fa1 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:17961 0xa24f2e tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:18281 0xa2c70f tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:17946 0xa2c70f instantiate_body /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:25577 0xa2d88f instantiate_decl(tree_node*, bool, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200920/work/gcc-11-20200920/gcc/cp/pt.c:25865