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%]>