https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100521
--- Comment #2 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:d902a1b57606536982a1001670f998de685eaf7c commit r12-755-gd902a1b57606536982a1001670f998de685eaf7c Author: Aldy Hernandez <al...@redhat.com> Date: Wed May 12 15:22:15 2021 -0400 Skip out on processing __builtin_clz when varying. The previous changes to irange::constant_p return TRUE for VARYING, since VARYING has numerical end points like any other constant range. The problem is that some users of constant_p depended on constant_p excluding the full domain. The range handler for __builtin_clz, that is shared between ranger and vr_values, is one such user. This patch excludes varying_p(), to match the original behavior for clz. gcc/ChangeLog: PR c/100521 * gimple-range.cc (range_of_builtin_call): Skip out on processing __builtin_clz when varying.