https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121985
--- Comment #5 from Jeffrey A. Law <law at gcc dot gnu.org> --- Somehow ranger is mucking things up. =========== BB 2 ============ Imports: var_8 Exports: var_8 <bb 2> [local count: 153437704]: var_8 = f; pretmp_23 = a; if (var_8 <= 5) goto <bb 3>; [85.71%] else goto <bb 4>; [14.29%] 2->3 (T) var_8 : [irange] char [0, 5] 2->4 (F) var_8 : [irange] char [6, +INF] That looks fine to me. =========== BB 3 ============ var_8 [irange] char [0, 5] Partial equiv (_28 pe8 bnd.9_10) Relational : (_26 != _31) <bb 3> [local count: 131511457]: bnd.9_10 = 6 - var_8; [ ... ] bnd.9_10 : [irange] char [1, 1] _28 : [irange] unsigned long [1, 1] That range on bnd.9_10 looks totally bogus.