https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109934
--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-13 branch has been updated by Sam James <sja...@gcc.gnu.org>: https://gcc.gnu.org/g:a987affa2b10cd8a0b1d244d9f010746837e031c commit r13-9114-ga987affa2b10cd8a0b1d244d9f010746837e031c 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. (cherry picked from commit 8d5f050dabbf6dd3b992c3b46661848dbcf30d9e)