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

Zhendong Su <su at cs dot ucdavis.edu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |su at cs dot ucdavis.edu

--- Comment #3 from Zhendong Su <su at cs dot ucdavis.edu> ---
Here is a small reproducer: 

$ gcctk -Os small.c
during GIMPLE pass: evrp
small.c: In function ‘main’:
small.c:9:1: internal compiler error: in check, at tree-vrp.c:155
    9 | }
      | ^
0xf400ef value_range::check()
        ../../gcc-source-trunk/gcc/tree-vrp.c:155
0xf45800 value_range::value_range(value_range_kind, tree_node*, tree_node*,
bitmap_head*)
        ../../gcc-source-trunk/gcc/tree-vrp.c:110
0xf45800 set_value_range_with_overflow
        ../../gcc-source-trunk/gcc/tree-vrp.c:1422
0xf45800 extract_range_from_binary_expr_1(value_range*, tree_code, tree_node*,
value_range const*, value_range const*)
        ../../gcc-source-trunk/gcc/tree-vrp.c:1680
0xfcafcd vr_values::extract_range_from_binary_expr(value_range*, tree_code,
tree_node*, tree_node*, tree_node*)
        ../../gcc-source-trunk/gcc/vr-values.c:734
0xfcd794 vr_values::extract_range_from_assignment(value_range*, gassign*)
        ../../gcc-source-trunk/gcc/vr-values.c:1392
0x14a5679 evrp_range_analyzer::record_ranges_from_stmt(gimple*, bool)
        ../../gcc-source-trunk/gcc/gimple-ssa-evrp-analyze.c:285
0x14a33b8 evrp_dom_walker::before_dom_children(basic_block_def*)
        ../../gcc-source-trunk/gcc/gimple-ssa-evrp.c:139
0x147f92a dom_walker::walk(basic_block_def*)
        ../../gcc-source-trunk/gcc/domwalk.c:353
0x14a3e31 execute_early_vrp
        ../../gcc-source-trunk/gcc/gimple-ssa-evrp.c:311
0x14a3e31 execute
        ../../gcc-source-trunk/gcc/gimple-ssa-evrp.c:348
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
$
$ cat small.c
int main ()
{ 
  unsigned b = 0;
  int c, d = -8;
  for (; b < 2; b++)
    for (c = 1; c; c--)
      d++;
  return 0;
}
$

Reply via email to