https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96107
Bug ID: 96107 Summary: [11 regression] ICE on invalid c++: "Error reporting routines re-entered." when using -Wall Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: slyfox at inbox dot ru Target Milestone: --- $ cat bug.cc struct a { using b = a; class c f(, b , (c *, *{ int d; b e; f(d, e, [](auto, *)) <many error go here> Internal compiler error: Error reporting routines re-entered. 0x7aa464 check_nonnull_arg /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/c-family/c-common.c:5523 0x7aa464 check_nonnull_arg /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/c-family/c-common.c:5498 0x7d12c6 check_function_nonnull /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/c-family/c-common.c:5315 0x7d12c6 check_function_arguments(unsigned int, tree_node const*, tree_node const*, int, tree_node**, vec<unsigned int, va_heap, vl_ptr>*) /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/c-family/c-common.c:5764 0x624e9b build_over_call /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/call.c:8868 0x626cc4 build_new_method_call_1 /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/call.c:10348 0x6276bf build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/call.c:10423 0x7423e5 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/pt.c:20042 0x7437ff tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool) /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/pt.c:15913 0x7437ff tsubst(tree_node*, tree_node*, int, tree_node*) /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/pt.c:15913 0x6a56e5 dump_template_bindings /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/error.c:416 0x6a5907 dump_substitution /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/error.c:1562 0x6a5907 dump_substitution /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/error.c:1550 0x6a0b0c dump_function_decl /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/error.c:1720 0x6a6998 decl_to_string /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/error.c:3101 0x6a6998 cp_printer /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/cp/error.c:4261 0x15b8bbe pp_format(pretty_printer*, text_info*) /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/pretty-print.c:1475 0x15ace42 diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*) /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/diagnostic.c:1159 0x15af5fd diagnostic_impl /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/diagnostic.c:1309 0x15af5fd inform(unsigned int, char const*, ...) /usr/src/debug/sys-devel/gcc-11.0.0_pre9999/gcc-11.0.0_pre9999/gcc/diagnostic.c:1388 For comparison gcc-10.1.0 does not crash: $ /usr/bin/x86_64-pc-linux-gnu-g++-10.1.0 -o bug.o -c -Wall bug.cc <many error go here>