https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109934
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Aldy Hernandez <al...@gcc.gnu.org>: https://gcc.gnu.org/g:8d5f050dabbf6dd3b992c3b46661848dbcf30d9e commit r14-1133-g8d5f050dabbf6dd3b992c3b46661848dbcf30d9e Author: Aldy Hernandez <al...@redhat.com> Date: Tue May 23 12:34:45 2023 +0200 Remove buggy special case in irange::invert [PR109934]. This patch removes a buggy special case in irange::invert which seems to have been broken for a while, and probably never triggered because the legacy code was handled elsewhere, and the non-legacy code was using an int_range_max of int_range<255> which made it extremely likely for num_ranges == 255. However, with auto-resizing ranges, int_range_max will start off at 3 and can hit this bogus code in the unswitching code. PR tree-optimization/109934 gcc/ChangeLog: * value-range.cc (irange::invert): Remove buggy special case. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/pr109934.c: New test.