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

            Bug ID: 89662
           Summary: [9 Regression] ICE in contains_struct_check, at
                    tree.h:3545
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gs...@t-online.de
  Target Milestone: ---

Changed between 20180708 and 20180722,
with option -Wall or -Warray-bounds :


$ cat z1.c
void *f (void *c)
{
  return c;
}
void g ()
{
  int n = 1;
  char c[n];
  h (f(c) - 1);
}


$ gcc-9-20190310 -c z1.c -O2 -Wall
z1.c: In function 'g':
z1.c:9:3: warning: implicit declaration of function 'h'
[-Wimplicit-function-declaration]
    9 |   h (f(c) - 1);
      |   ^
during GIMPLE pass: vrp
z1.c:5:6: internal compiler error: Segmentation fault
    5 | void g ()
      |      ^
0xc2668f crash_signal
        ../../gcc/toplev.c:326
0x8661a7 contains_struct_check(tree_node const*, tree_node_structure_enum, char
const*, int, char const*)
        ../../gcc/tree.h:3545
0x8661a7 wi::extended_tree<128>::extended_tree(tree_node const*)
        ../../gcc/tree.h:5629
0xeeebe6 generic_wide_int<wi::extended_tree<128> >::generic_wide_int<tree_node
const*>(tree_node const* const&)
        ../../gcc/wide-int.h:780
0xeeebe6 wi::to_offset(tree_node const*)
        ../../gcc/tree.h:5581
0xeeebe6 vrp_prop::check_mem_ref(unsigned int, tree_node*, bool)
        ../../gcc/tree-vrp.c:4726
0xeef466 vrp_prop::search_for_addr_array(tree_node*, unsigned int)
        ../../gcc/tree-vrp.c:4785
0xeef629 check_array_bounds
        ../../gcc/tree-vrp.c:4884
0xf223c3 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*> >*))
        ../../gcc/tree.c:12108
0x95d9f0 walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        ../../gcc/gimple-walk.c:253
0xed9ef1 check_array_bounds_dom_walker::before_dom_children(basic_block_def*)
        ../../gcc/tree-vrp.c:4934
0x1486517 dom_walker::walk(basic_block_def*)
        ../../gcc/domwalk.c:353
0xede54c vrp_prop::check_all_array_refs()
        ../../gcc/tree-vrp.c:4951
0xedfee5 vrp_prop::vrp_finalize(bool)
        ../../gcc/tree-vrp.c:6712
0xeeff2e execute_vrp
        ../../gcc/tree-vrp.c:6780

Reply via email to