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

            Bug ID: 88444
           Summary: [9 Regression] ICE: tree check: expected ssa_name,
                    have integer_cst in live_on_edge, at tree-vrp.c:468;
                    or ICE: tree check: expected ssa_name, have
                    integer_cst in get_value_range, at vr-values.c:84
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-checking, ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

1.

gcc-9.0.0-alpha20181209 snapshot (r266934) ICEs when compiling the following
snippet w/ -O1 (-O2, -O3, -Ofast):

int ve;

int
br (int, int);

int
nd (long int xt)
{
  return !!xt ? xt : 1;
}

void
yo (int ub)
{
  ve += br (0, 0) + nd (ub);
}

void
fy (void)
{
  int sb = 0;

  ve = ve || br (0, 0);
  ve = ve || br (0, 0);
  ve = ve || br (0, 0);
  yo (sb);
}

% gcc-9.0.0-alpha20181209 -O1 -finline-functions -finline-small-functions
-ftree-vrp -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre -c cki1gbbg.c
during GIMPLE pass: vrp
cki1gbbg.c: In function 'fy':
cki1gbbg.c:19:1: internal compiler error: tree check: expected ssa_name, have
integer_cst in live_on_edge, at tree-vrp.c:468
   19 | fy (void)
      | ^~
0x6dceef tree_check_failed(tree_node const*, char const*, int, char const*,
...)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree.c:9757
0x6d9c18 tree_check(tree_node*, char const*, int, char const*, tree_code)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree.h:3157
0x6d9c18 live_on_edge
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree-vrp.c:468
0x6d9c18 live_on_edge
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree-vrp.c:465
0xf7b53f finish_register_edge_assert_for
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree-vrp.c:3510
0xf8a927 find_conditional_asserts
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree-vrp.c:3554
0xf8a927 find_assert_locations_1
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree-vrp.c:3823
0xf8ea12 find_assert_locations
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree-vrp.c:3984
0xf8ea12 insert_range_assertions
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree-vrp.c:4308
0xf8ea12 execute_vrp
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree-vrp.c:6758

2.

Replacing -O1 w/ -Og yield the following:

% gcc-9.0.0-alpha20181209 -Og -finline-functions -finline-small-functions
-ftree-vrp -fno-tree-ccp -fno-tree-forwprop -fno-tree-fre -c cki1gbbg.c
during GIMPLE pass: printf-return-value
cki1gbbg.c: In function 'fy':
cki1gbbg.c:19:1: internal compiler error: tree check: expected ssa_name, have
integer_cst in get_value_range, at vr-values.c:84
   19 | fy (void)
      | ^~
0x6dceef tree_check_failed(tree_node const*, char const*, int, char const*,
...)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree.c:9757
0x6f4cd1 tree_check(tree_node const*, char const*, int, char const*, tree_code)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/tree.h:3413
0x6f4cd1 vr_values::get_value_range(tree_node const*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/vr-values.c:84
0x14f9bd6 evrp_range_analyzer::get_value_range(tree_node const*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/gimple-ssa-evrp-analyze.h:41
0x14f9bd6 evrp_range_analyzer::try_find_new_range(tree_node*, tree_node*,
tree_code, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/gimple-ssa-evrp-analyze.c:87
0x14fa9d3
evrp_range_analyzer::record_ranges_from_incoming_edge(basic_block_def*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/gimple-ssa-evrp-analyze.c:193
0x14faf4d evrp_range_analyzer::enter(basic_block_def*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/gimple-ssa-evrp-analyze.c:76
0x151a7eb before_dom_children
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/gimple-ssa-sprintf.c:4157
0x14d78d2 dom_walker::walk(basic_block_def*)
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/domwalk.c:353
0x1515acd execute
       
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181209/work/gcc-9-20181209/gcc/gimple-ssa-sprintf.c:4192

Reply via email to