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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amacleod at redhat dot com

--- Comment #2 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
We're trying to build a range for [-1, 0(OVF)] in find_case_label_range:

      int_range_max label_range (CASE_LOW (min_label), case_high);

and case_high has an overflow.  This causes us to fail in
irange::verify_range() on the compare_values:

          tree lb = tree_lower_bound (i);
          tree ub = tree_upper_bound (i);
          int c = compare_values (lb, ub);
          gcc_checking_assert (c == 0 || c == -1);

The question is, is this 0(OVF) allowed?

 <bb 4> [local count: 1073741824]:
  switch (i_2(D)) <default: <L3> [0.00%], case -1: <L5> [50.00%], case 0(OVF):
<L2> [50.00%]>

Reply via email to