https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Martin Sebor from comment #7) > Here's what I see in GDB after get_range_info returns to update_value_range: > > (gdb) p rtype > $39 = VR_ANTI_RANGE > (gdb) p min > $40 = {<wide_int_storage> = {val = {128, 18061790, 140737235530016}, len = > 1, precision = 64}, static is_sign_extended = <optimized out>} > (gdb) p max > $41 = {<wide_int_storage> = {val = {-129, 18061836, 140737235530016}, len = > 1, precision = 64}, static is_sign_extended = <optimized out>} wide_int_storage has no interpretation of the bits that is it can be either unsigned or 2 comp signed. You need to know the type (signed or unsigned) to figure out that.