https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88984

            Bug ID: 88984
           Summary: [9 Regression] ICE in genericize_switch_stmt, at
                    cp/cp-gimplify.c:377
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-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-alpha20190120 snapshot (r268107) ICEs when compiling the following
testcase extracted from test/Sema/loop-control.c from the clang 7.0.1
testsuite:

void pr8880_18(int x, int y) {
  while(x > 0)
    switch(({if(y) break; y;})) {
    case 2: x = 0;
    }
}

% g++-9.0.0-alpha20190120 -c rqxhnkhh.c
rqxhnkhh.c: In function 'void pr8880_18(int, int)':
rqxhnkhh.c:6:1: internal compiler error: in genericize_switch_stmt, at
cp/cp-gimplify.c:377
    6 | }
      | ^
0x5d9807 genericize_switch_stmt
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/cp-gimplify.c:377
0x5d9807 cp_genericize_r
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/cp-gimplify.c:1505
0x1273013 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/tree.c:12064
0x8dc138 genericize_cp_loop
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/cp-gimplify.c:251
0x8df2ca genericize_do_stmt
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/cp-gimplify.c:346
0x8df2ca cp_genericize_r
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/cp-gimplify.c:1501
0x1273013 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/tree.c:12064
0x8e0bd2 cp_genericize_tree
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/cp-gimplify.c:1629
0x8e0f94 cp_genericize(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/cp-gimplify.c:1778
0x91a65d finish_function(bool)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/decl.c:16183
0x9bb2f8 cp_parser_function_definition_after_declarator
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27633
0x9bc0dc cp_parser_function_definition_from_specifiers_and_declarator
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27546
0x9bc0dc cp_parser_init_declarator
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:20205
0x99d398 cp_parser_simple_declaration
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:13476
0x9c2c10 cp_parser_declaration
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:13173
0x9c33a0 cp_parser_translation_unit
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:4698
0x9c33a0 c_parse_file()
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:41003
0xaccdab c_common_parse_file()
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/c-family/c-opts.c:1155

Reply via email to