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

Reply via email to