https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89488
Bug ID: 89488 Summary: [9 Regression] ICE in merge_exception_specifiers, at cp/typeck2.c:2395 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-9.0.0-alpha20190224 snapshot (r269177) ICEs when compiling the following testcase: struct zl { struct { int x2 = zl (); } fx; }; % g++-9.0.0-alpha20190224 -c vczgd7oc.cpp vczgd7oc.cpp:3:18: error: default member initializer for 'zl::<unnamed struct>::x2' required before the end of its enclosing class 3 | int x2 = zl (); | ^ vczgd7oc.cpp:3:12: note: defined here 3 | int x2 = zl (); | ^~~~~~~~ vczgd7oc.cpp:3:18: internal compiler error: in merge_exception_specifiers, at cp/typeck2.c:2395 3 | int x2 = zl (); | ^ 0x67cfaf merge_exception_specifiers(tree_node*, tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/typeck2.c:2395 0x96aa69 process_subob_fn /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/method.c:1261 0x96aa69 process_subob_fn /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/method.c:1246 0x96b0a5 walk_field_subobs /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/method.c:1458 0x96b900 synthesized_method_walk /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/method.c:1724 0x96eae3 get_defaulted_eh_spec(tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/method.c:1762 0xa07186 maybe_instantiate_noexcept(tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/pt.c:24190 0x92e0da mark_used(tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/decl2.c:5392 0x893ff5 build_over_call /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/call.c:8552 0x896b1f build_new_method_call_1 /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/call.c:9773 0x896b1f build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/call.c:9848 0x897889 build_special_member_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/call.c:9272 0x949ac6 build_value_init(tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/init.c:354 0xa7af92 build_functional_cast(tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/typeck2.c:2274 0x997574 cp_parser_functional_cast /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/parser.c:28255 0x9a9c41 cp_parser_postfix_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/parser.c:7098 0x9b8bc9 cp_parser_unary_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/parser.c:8469 0x991d72 cp_parser_cast_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/parser.c:9355 0x99264a cp_parser_binary_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/parser.c:9457 0x9937b6 cp_parser_assignment_expression /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190224/work/gcc-9-20190224/gcc/cp/parser.c:9754