https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117287
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Whatever is done, it needs to be (worst case conservatively) correct, so if it can't or decides not to process some edge which does or might result into true result, assume the worst (VARYING etc.). Of course, it would be nice if for simple cases like this it actually constructed the exact range rather than trying to be conservatively correct, that is something that can be deferred to much more complex assume functions.